如何使用方法从片段中的主活动获取声明值?

问题描述 投票:0回答:1

这是我在片段中的方法

private void getDataFromMainActivity(String object) {
        MainActivity mainActivity = new MainActivity();
        List<ModelData> newDataList = mainActivity.getDataForTab(object);
        callAdapter(newDataList);
        progressBar.setVisibility(View.GONE);
    }

这是我在 MainActivity 中的方法声明

    public List<ModelData> getDataForTab(String object) {
       return allData.get(object)
    }

当我运行这个时,它给了我空点异常,但是当我在主活动中打印时,Map不为空,然后当我尝试从片段访问它时,它总是为空,为什么呢? ?我应该如何通过方法从片段访问地图值?

捆绑包不适用于我的情况。

java android android-activity
1个回答
0
投票

首先,您在第一行中创建了一个新的 Activity 实例

MainActivity mainActivity = new MainActivity()
这将创建另一个活动(而不是托管您的片段的活动),为此,您可以在片段中调用
getActivity()
,然后您需要像这样将其投射到 MainActivity:

Activity activity = getActivity();

if (activity != null && activity instanceof MainActivity) {
  // Now it's safe to cast to MainActivity
  MainActivity mainActivity = (MainActivity) activity;
  
  // You can access methods or properties of MainActivity here
          List<ModelData> newDataList = mainActivity.getDataForTab(object);

}
© www.soinside.com 2019 - 2024. All rights reserved.