如何确保已创建其他附加片段的视图?

时间:2013-09-20 10:35:09

标签: android android-fragments

你好我需要在2个片段之间传递信息(从片段A到framgnet B),我无法...我按照开发者网站上给出的教程,但不知怎的,我得到错误... 我在片段B里面的textview中得到了一个零点异常...我确保textview的范围没有问题,所有人都可以帮助我,因为我可能将信息从片段a传递给b和要求在b的视图尚未创建时显示在b中。 所以我想知道如何确保其他片段的视图是否已创建? 但我的主要问题仍然是如何在片段之间传递数据??? 我问了两个与此相关的问题 Unable to pass data between fragments.....TextView throws NullPoint ExceptionHow to Pass Data between Fragments?

我按照开发网站中给出的例子

1 个答案:

答案 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);
    }
}