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();
}