ListView奇怪的行为

时间:2013-06-11 19:26:29

标签: android

以下是我在onCreateView(片段中)中所做的事情:

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

这是onItemClick

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

问题是,当我点击第一个项目时,最后一个可见项仅突出显示。在2日 - 1日和2日结束。第3 - 第2,最后和第3结束等 我检查view是否真的是通过查看mChild数组内部点击的项目。目前我无法弄清楚原因。你有什么想法?如果需要更多数据代码,请告诉我。提前谢谢。
该应用程序在10英寸平板电脑模拟器Android 2.3.3上进行了测试

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

不确定是否可以,但它似乎与我前一段时间遇到的问题相同:

getting View for ListView item / reverse order on 2.2; works on 4.0.3

尝试在Runnable

中包装它

类似的东西:

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

答案 2 :(得分:0)

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