你好我需要在2个片段之间传递信息(从片段A到framgnet B),我无法...我按照开发者网站上给出的教程,但不知怎的,我得到错误... 我在片段B里面的textview中得到了一个零点异常...我确保textview的范围没有问题,所有人都可以帮助我,因为我可能将信息从片段a传递给b和要求在b的视图尚未创建时显示在b中。 所以我想知道如何确保其他片段的视图是否已创建? 但我的主要问题仍然是如何在片段之间传递数据??? 我问了两个与此相关的问题 Unable to pass data between fragments.....TextView throws NullPoint Exception 和 How to Pass Data between Fragments?
我按照开发网站中给出的例子
答案 0 :(得分:1)
不要缓存您的视图。使用getView()方法获取根视图。它将被创建,如果没有的话。
更改行:
TextView text=(TextView)view.findViewById(R.id.tt);
要:
TextView text=(TextView)getView().findViewById(R.id.tt);
无论如何,设置值直接从外部对象查看并不是一个好方法。 你可以这样做:
private String mText = null;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// onActivityCreated calls after view creation, and attaching fragment to Activity so it's good place to fill your views with default info
TextView text=(TextView)getView().findViewById(R.id.tt);
text.setText(mText);
}
void setSongList(ArrayList<SongDetails> songinfo) {
View v = getView();
// Cache your text, and set it to TextView only if View already created.
this.mText = "mytext";
if(v != null) {
TextView text=(TextView)getView().findViewById(R.id.tt);
text.setText(mText);
}
}