【问题标题】:How can refresh ListView when tab in android如何在android中的选项卡时刷新ListView
【发布时间】:2009-10-25 04:56:56
【问题描述】:

我的应用程序有三个选项卡,每个选项卡都显示ListView。在选项卡之间单击时如何编写代码以刷新ListView

@Override
public void onTabChanged(String tabId) {        
    if(tabId == "tab_1")
    {
        refresh ListView ???
    }   

}

【问题讨论】:

    标签: android


    【解决方案1】:

    如果要手动刷新,可以在Adapter上拨打notifyDataSetChanged()

    【讨论】:

      【解决方案2】:

      您不会刷新ListView。您确保底层Adapter 具有最新数据,并且它将与ListView 一起显示它。因此,例如,如果您使用的是SimpleCursorAdapter,请在Cursor 上调用requery()

      【讨论】:

        【解决方案3】:

        其实你应该做两件事: - 您必须要求适配器通知 ListView 新的数据更改:notifyDataSetChanged() 但这将在下次 ListView 需要显示视图时生效(比如说在滚动列表之后)。另一个问题是 ListView 不会询问列表的行数,所以如果列表变短,你会得到空指针异常:)

        我更喜欢使用类似的东西:

        if(filterProvider.containsChildren(position)){
        // go into the hierarchy
            filterProvider.navigateToChildren(position);
            adapter.notifyDataSetChanged();
            adapter.notifyDataSetInvalidated();
            listView.invalidateViews();
        }else{
            int ID = (int)filterProvider.getIdFromPosition(position);
            activity.setResult(ID);
            activity.finish();
        }
        

        代码是具有多个级别(具有层次结构)的列表的一部分

        您好, 萨沙鲁丹

        【讨论】:

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