我ListView创建了一个Android ,SimpleAdapter其中包含的项目多于屏幕中的项目.滚动列表后,我需要获取列表中第一个可见项的数据模型中的位置.
基本上我想要一个像:listView.getChildAt(0).getPositionInDataModel().
Adapter它有一些功能getItemId(position),看起来很有用; 但是,SimpleAdapter实现只返回传入的位置,而不是像我希望的那样的行ID.
一个强力解决方案是在索引0处获取View,并将其与适配器中每个项目的视图进行比较.但是,似乎没有一种简单的方法可以从适配器获取特定位置的视图.
有人有什么想法?
我创建以下代码:
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
for (int i = 0; i < mListView.getCount(); i++) {
View callLogView = mListView.getChildAt(i);
mRelativeLayout = (LinearLayout)callLogView.findViewById(R.id.myShow);
if(i == position){
if(mRelativeLayout.getVisibility() == View.GONE){
mRelativeLayout.setVisibility(View.VISIBLE);
}
else{
mRelativeLayout.setVisibility(View.GONE);
}
}else{
mRelativeLayout.setVisibility(View.GONE);
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
我想实现一个函数,比如当我点击一个项目时Listview,它会显示一个视图,而Listview的其他项目将被隐藏.但是mListView.getChildAt(i)超过后会有空指针mListView.getChildCount().
怎么解决这个?提前致谢!
我试图在触摸gridview时选择项目,我无法使用onClick,因为它启动了另一个活动.我想要实现的是能够在gridview中移动项目,因为我无法找到一种方法来做到这一点我正试图让路...
所以是啊..有没有办法得到哪个项目被"触摸",我尝试使用一个矩形,它没有正常工作..
(我可以详细说明..我不能使用onItemClick这个..)
任何帮助都会很棒,谢谢!:)
我有以下情况.
我有一个ListView,ListView的每个项目都包含不同的小部件(TextViews,ImageViews等...),这些小部件getView()在自定义适配器的方法中从一个布局中膨胀.
现在,我想实现以下目标:
当某个事件被触发时,我想要更改项目内的视图的背景.
请问我该怎么办?
这是项目布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/cardlayout"
android:layout_width="320dp"
android:layout_height="130dp"
android:background="@android:color/transparent"
android:orientation="vertical"
android:paddingBottom="5dp"
android:paddingRight="5dp"
android:paddingTop="5dp" >
<FrameLayout
android:layout_width="320dp"
android:layout_height="117dp" >
<View
android:id="@+id/card"
android:layout_width="320dp"
android:layout_height="117dp"
android:background="@drawable/card_selector" />
</FrameLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我需要改变背景 card
我试过这样做:
View v=lv.getAdapter().getView(index, null, lv);
View card =(View)v.findViewById(R.id.card);
card.setBackgroundResource(R.drawable.pressed_background_card);
Run Code Online (Sandbox Code Playgroud)
但没有成功: - ((