更新片段的父Activity中的TextView

时间:2016-04-28 01:48:46

标签: android android-fragments android-activity textview

我只需要从其子片段修改父的TextView。该活动实际上仍然显示在片段旁边,所以我假设我应该能够从片段中修改它,但到目前为止我已经遇到了我尝试过的所有内容。我看到一些关于从父母那里更新片段的帖子,但是我需要做相反的事情,到目前为止这些功能都没有用。

我已将此方法放在MainActivity(父级)中,以允许从片段更新TextView。

 public void updateGoldTextView(int goldAmount) {
    goldTV.setText(String.valueOf(goldAmount));
}

在我的片段中,我正在调用方法:

MainActivity mainActivity = new MainActivity();
mainActivity.updateGoldTextView(50);

我的片段需要做些什么才能让我正确引用它?

2 个答案:

答案 0 :(得分:4)

你正在调用方法错误!在片段中尝试以下内容。

((MainActivity) getActivity()).updateGoldTextView(50);

要了解其工作原理,Android中的每个Activity都是用户看到的屏幕。您的MainActivity托管片段。要从您的片段访问父活动,您应该使用getActivity()方法。

答案 1 :(得分:0)

但是将数据从片段传递到活动的最佳做法是你应该使用interface.so,在任何时候你都不会得到NPE。