首页 > 解决方案 > 如何从另一个活动刷新当前列表视图?

问题描述

单击工具栏中的刷新图标后,如何从另一个或主 Activity 刷新 Activity1 中的列表视图?

这是我预期的编码设计:

MainActivity - 有一个使用刷新图标创建的选项卡和工具栏。

Activity1 片段 - 在 tab1 中有 Listview1

Activity2 片段 - 在 tab2 中有 Listview2

单击刷新图标后,所有列表视图都将被刷新。但是,我不知道如何从另一个活动中调用 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();
            }
        }

请多多指教。

谢谢提前。

标签: androidlistview

解决方案


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

内部片段 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();
        }
    }
};

从活动(刷新点击)

public void onClick(View view) {

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

推荐阅读