我有一个包含可检查项目的选项菜单的主要活动。我还有三个带有活动的选项卡,每个选项卡都包含一个列表视图。
当我更改主活动中的可检查项目菜单选项时,我想要做的是刷新所选选项卡的列表视图。
关于如何实现这一目标的任何想法?
我有一个包含可检查项目的选项菜单的主要活动。我还有三个带有活动的选项卡,每个选项卡都包含一个列表视图。
当我更改主活动中的可检查项目菜单选项时,我想要做的是刷新所选选项卡的列表视图。
关于如何实现这一目标的任何想法?
在具有列表视图的片段上的 onResume() 中调用适配器上的 notifyDataSetChanged()。
通常当您有选项卡时,您使用的是视图寻呼机,因此每个片段应该能够指定它自己的选项菜单,从而将范围保持在当前选定的列表中。
你可以做一个解决方法来做到这一点。使用全局类。您可以将选定的选中项值存储在全局类中。并从代码中的任何位置访问该值。如何创建一个全局类
然后使用TimerTask
infragments来检查选中的item是否改变,重新加载数据。
下面是如何实现一个TimerTask
Keep the 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()
@Override
protected void onPause() {
if(timer != null){
timer.cancel();
}
super.onPause();
}
希望这对你有用。