0

这是我在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。3rd - 2nd, last 和 3rd from the end 等。我通过查看数组内部
检查view了该项目是否真的被点击了。mChild目前我无法弄清楚原因。你有什么想法?让我知道是否需要更多数据化代码。提前致谢。
该应用程序在 10 英寸平板电脑模拟器 Android 2.3.3 上进行了测试

4

3 回答 3

2

删除android:choiceMode="singleChoice"列表视图的属性解决了这个问题。

于 2013-06-11T19:40:40.827 回答
0

不知道是不是这样,但它似乎与我前段时间遇到的问题相同:

在 2.2 上获取 ListView 项目的视图/反向顺序;适用于 4.0.3

尝试将其包装在 Runnable 中

就像是 :

view.post(new Runnable(
   run(){
      view.setBackground...
   }
)) 
于 2013-06-11T19:35:23.323 回答
0

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

于 2013-06-11T19:52:55.617 回答