gpt4 book ai didi

android - 如何从另一个 Activity 刷新当前 ListView ?

转载 作者:行者123 更新时间:2023-11-29 22:58:57 24 4
gpt4 key购买 nike

如何在单击工具栏中的刷新图标后从另一个或主 Activity 刷新 Activity1 中的 ListView ?

这是我预期的编码设计:

MainActivity - 有一个选项卡和一个带有刷新图标的工具栏。

Activity1 fragment - 在 tab1 中有 Listview1

Activity2 fragment - 在 tab2 中有 Listview2

一旦点击刷新图标,所有的 ListView 都会被刷新。但是,我不知道如何从另一个 Activity 调用 Activity1 中的刷新函数。

以下代码用于在 Activity1 中刷新 listview(listView_monitor),如果它调用自身则可以正常工作:

        private void Refresh_Listview() {
monitorList = new ArrayList<>();
monitorList.clear();
if (Create_Data_Array()) {
adapter = new FGT_Monitor_ListView_Adapter(getActivity(), monitorList);
listView_monitor.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}

请指教。

提前致谢。

最佳答案

有多种方法可以做到这一点。对我来说,最简单的方法是使用广播接收器。例如

Inside Fragment A

@Override
public void onResume() {
getActivity().registerReceiver(mReceiverLocation, new IntentFilter("data_action"));
super.onResume();
}

@Override
public void onPause() {
getActivity().unregisterReceiver(mReceiverLocation);
super.onPause();
}

private BroadcastReceiver mReceiverLocation = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
try {
Category category = (Category) intent.getSerializableExtra("category");
Log.e("data", category.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
};

From Activity(refresh click)

public void onClick(View view) {

Intent in = new Intent("data_action");
in.putExtra("category", category);
context.sendBroadcast(in);
}

关于android - 如何从另一个 Activity 刷新当前 ListView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57132005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com