简体   繁体   English

ListView奇怪的行为

[英]ListView strange behavior

Here is what I do in onCreateView (in fragment): 这是我在onCreateView (片段中)中所做的:

NewsAdapter adapter = new NewsAdapter(getActivity(), newsList, R.layout.news_list_item);
newsListView.setAdapter(adapter);
newsListView.setOnItemClickListener(this);

And here is onItemClick : 这里是onItemClick

@Override                                                                         
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
    view.setBackgroundResource(R.drawable.list_item_back_selected);
}

And the problem is when I tap on the first item then the last visible is only highlighted. 问题是当我点击第一个项目时,最后一个可见项仅突出显示。 On the 2nd - 1st and 2nd from the end. 在2日 - 1日和2日结束。 3rd - 2nd, last and 3rd from the end etc. 第3 - 第2,最后和第3结束等
I checked that view is a really the item was clicked by looking inside mChild array. 我检查了该view是否真的通过查看mChild数组中的项目被点击了。 Currently I can't figure out the reason. 目前我无法弄清楚原因。 Do you have any ideas? 你有什么想法? Let me know if more datailed code is required. 如果需要更多数据代码,请告诉我。 Thanks in advance. 提前致谢。
The application was tested on 10 inches tablet emulator, Android 2.3.3 该应用程序在10英寸平板电脑模拟器Android 2.3.3上进行了测试

删除android:choiceMode="singleChoice"属性的listview修复了问题。

Not sure if thats it but it seems like the same issue that I have encountered some time ago : 不确定是不是这样,但它似乎与我前一段时间遇到的问题相同:

getting View for ListView item / reverse order on 2.2; 在2.2上获取ListView项目/逆序的视图; works on 4.0.3 适用于4.0.3

try wraping it in Runnable 尝试在Runnable中包装它

something like : 就像是 :

view.post(new Runnable(
   run(){
      view.setBackground...
   }
)) 

我认为你必须在影响新背景时调用adapter.notifyDataSetChanged()来告诉适配器你要刷新视图。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM