从 Fragment B 中的 Fragment A 访问视图
Posted
技术标签:
【中文标题】从 Fragment B 中的 Fragment A 访问视图【英文标题】:Access view from Fragment A in Fragment B 【发布时间】:2014-12-21 20:53:18 【问题描述】:我试图从片段 B 中的片段 A 访问 Textview 以更改文本,我得到一个空指针。我试过以下。
public void setText(String text)
TextView t = (TextView) getView().findViewById(R.id.message_menu);
t.setText(text);
我也试过了
test = (TextView) getView().findViewById(R.id.message_menu);
test.setText("bla bla");
我也尝试过夸大另一个视图
View myFragmentView = inflater.inflate(R.layout.fragment_login, container, false);
test = (TextView) test..findViewById(R.id.message_menu);
尝试在 Fragment B 中使用带有以下代码的 NewInstance
test = (TextView) FragmentLogin.newInstance().getView().findViewById(R.id.TEXT_STATUS_ID);
test.setText("hello testing ");
和片段 A:
public static FragmentBottomMenu newInstance()
FragmentBottomMenu fragment = new FragmentBottomMenu();
return fragment;
仍然得到一个空指针异常。
任何建议都会很棒。谢谢
【问题讨论】:
不要这样做,这是不好的做法。通知活动导致文本更改的任何事件,并让活动在第二个片段上调用一些公共方法。 【参考方案1】:您的代码示例指向 current 片段的视图!要正确访问其他 Fragment 的视图,请使用以下命令:
text = (TextView) [otherFragmentInstance].getView().findViewById(R.id.message_menu);
text.setText("bla bla");
【讨论】:
您好,感谢您的回答,我尝试了您的解决方案,但仍然出现空异常。我已经更新了我的问题,它显示了我尝试过的代码.. 谢谢以上是关于从 Fragment B 中的 Fragment A 访问视图的主要内容,如果未能解决你的问题,请参考以下文章
如何从 MainActivity 中的 Fragment 访问适配器?我正在使用带有 viewpager 的标签,所以没有交易等方法
从后台弹出时不调用 Fragment 的 onResume()