【问题标题】:ListView strange behaviorListView 奇怪的行为
【发布时间】:2013-06-11 19:26:29
【问题描述】:

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

【问题讨论】:

    标签: android


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      尝试将其包装在 Runnable 中

      类似:

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

      【讨论】:

      • 不幸的是没有帮助。但是感谢链接让我想起了我之前尝试过的android:choiceMode
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多