0

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

当我更改主活动中的可检查项目菜单选项时,我想要做的是刷新所选选项卡的列表视图。

关于如何实现这一目标的任何想法?

4

3 回答 3

0

在具有列表视图的片段上的 onResume() 中调用适配器上的 notifyDataSetChanged()。

于 2018-08-18T20:47:12.513 回答
0

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

于 2018-08-18T20:38:18.870 回答
0

你可以做一个解决方法来做到这一点。使用全局类。您可以将选定的选中项值存储在全局类中。并从代码中的任何位置访问该值。如何创建一个全局类

然后使用TimerTaskinfragments来检查选中的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();
}

希望这对你有用。

于 2018-08-19T08:20:22.440 回答