我只需要从其子片段修改父的TextView。该活动实际上仍然显示在片段旁边,所以我假设我应该能够从片段中修改它,但到目前为止我已经遇到了我尝试过的所有内容。我看到一些关于从父母那里更新片段的帖子,但是我需要做相反的事情,到目前为止这些功能都没有用。
我已将此方法放在MainActivity(父级)中,以允许从片段更新TextView。
public void updateGoldTextView(int goldAmount) {
goldTV.setText(String.valueOf(goldAmount));
}
在我的片段中,我正在调用方法:
MainActivity mainActivity = new MainActivity();
mainActivity.updateGoldTextView(50);
我的片段需要做些什么才能让我正确引用它?
答案 0 :(得分:4)
你正在调用方法错误!在片段中尝试以下内容。
((MainActivity) getActivity()).updateGoldTextView(50);
要了解其工作原理,Android中的每个Activity
都是用户看到的屏幕。您的MainActivity
托管片段。要从您的片段访问父活动,您应该使用getActivity()
方法。
答案 1 :(得分:0)
但是将数据从片段传递到活动的最佳做法是你应该使用interface.so,在任何时候你都不会得到NPE。