Android 从主活动刷新选项卡活动中的listview

Android 从主活动刷新选项卡活动中的listview,android,listview,tabs,menu-items,Android,Listview,Tabs,Menu Items,我有一个带有选项菜单的主活动,其中包含一个可检查项。我还有三个带有活动的选项卡,每个选项卡都包含一个列表视图 当我更改主活动中的“可检查项”菜单选项时,我试图刷新所选选项卡的列表视图 您知道如何实现这一点吗?通常,当您有选项卡时,您使用的是视图寻呼机,因此每个片段都应该能够指定自己的选项菜单,从而将范围保留在当前选定的列表中。在onResume()中的适配器上调用notifyDataSetChanged()在具有listview的片段上。您可以执行一个解决方法来完成此操作。使用全局类。可以在全局

我有一个带有选项菜单的主活动,其中包含一个可检查项。我还有三个带有活动的选项卡,每个选项卡都包含一个列表视图

当我更改主活动中的“可检查项”菜单选项时,我试图刷新所选选项卡的列表视图


您知道如何实现这一点吗?

通常,当您有选项卡时,您使用的是视图寻呼机,因此每个片段都应该能够指定自己的选项菜单,从而将范围保留在当前选定的列表中。

在onResume()中的适配器上调用notifyDataSetChanged()在具有listview的片段上。

您可以执行一个解决方法来完成此操作。使用全局类。可以在全局类中存储选定的选中项值。并从代码中的任何位置访问该值

然后在片段中使用
TimerTask
,检查所选项目是否已更改并重新加载数据

下面是如何实现
TimerTask
将previousItem和currentItem保留为字符串值以检查是否有修改

TimerTask timerTask;
Timer timer;
timerTask = new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    //check if the checkable item is modified
                    currentItem = globalClass.getCheckedItem();
                    if(!previousItem.equalsIgnoreCase(currentItem)){
                        previousItem = currentItem;
                        //load your data
                    }
                }
            });
        }
    };
    timer = new Timer();
    timer.scheduleAtFixedRate(timerTask, 0, 200);
globalClass.getCheckedItem()
是用于从globalClass获取选定项的方法。您可以在从选项菜单中选择项目时设置该值 并确保取消计时器
onPause()


希望这对您有用。

您有两个活动,一个有可检查列表,另一个有选项卡吗?我有一个带有选项卡主机->选项卡小部件的主活动,然后是三个选项卡,每个选项卡都有一个活动和一个列表视图。问题是,当我触摸主活动中的菜单项时,选择了选项卡活动(显示给用户的选项卡)不会触发onresume,因此活动不知道更改。事实上,这就是问题所在。每个选项卡都有一个正确的片段..并且listview位于该片段中..因此在onresume()中调用notifyDataSetChanged()是片段,不是活动..但是当我触摸放置在主活动中的项目时,不会触发Resume上的选项卡。也许你可以告诉我一种方法。当然..你能粘贴你的代码吗..这样我就可以看到并让你知道如何做..谢谢你的回答!我会尝试一下。
@Override
protected void onPause() {
    if(timer != null){
        timer.cancel();
    }
    super.onPause();
}