这是我在片段中的方法
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不为空,然后当我尝试从片段访问它时,它总是为空,为什么呢? ?我应该如何通过方法从片段访问地图值?
捆绑包不适用于我的情况。
首先,您在第一行中创建了一个新的 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);
}