【问题标题】:custom cursoradaptor not working properly with view自定义光标适配器无法正常使用视图
【发布时间】:2014-06-15 00:25:18
【问题描述】:

我正在处理列表视图。我已经使用了带有 newbind 的自定义光标适配器,并且使用了 viewholder 覆盖了 bindview。 每当第一次打开列表视图时,都会调用 newbind,然后调用每一行的 bindview。并显示列表。 当在 listview 上时,数据发生变化,listview 应该使用新行进行更新。我的问题是:

  • 在将新行更新到现有列表视图时,仅调用 bindview?还是先调用newbind再调用bindview?

  • 在我的例子中,只有 bindview 被调用,它使用以前的持有者实例并更新它。

  • 使用带持有人的自定义 simplecursoradaptor 更新列表视图时的默认行为是什么。

【问题讨论】:

    标签: android listview simplecursoradapter


    【解决方案1】:

    试试这个

    adapter.notifyDataSetChanged();
    

    【讨论】:

    • 我需要在哪里写这个。在活动中,我在 onLoadFinished 和 onLoaderreset 中有 adapter.swapcursor
    • 你必须重新查询然后 notifyDataSetChanged。
    • ok 会试试的。你能帮我解决问题和行为吗,因为我是 android 新手。
    • 当然请发布问题。如果你有
    • stackoverflow.com/questions/24154275/… ,我在链接中发布了一个问题。您提到的解决方案可以在链接中使用吗?
    【解决方案2】:

    使用

    adapter.notifyDataSetChanged();
    

    在你设置适配器之前:

    adapter.notifyDataSetChanged();
    listview.setAdapter(adapter);
    

    【讨论】:

      【解决方案3】:
      @Override
      public int getItemViewType(int position) {
          Cursor cursor = (Cursor) getItem(position);
          return getItemViewType(cursor);
      }
      
      @Override
      public int getViewTypeCount() {
          return 2;
      }
      

      这些方法解决了显示不正确的问题

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多