0

您好,我需要在 2 个片段(从片段 A 到 framgnet B)之间传递信息,但我无法...我按照开发者网站中给出的教程进行操作,但不知何故我遇到了错误...我得到了一个空点片段 B 内的 textview 中的异常...我确保 textview 的范围没有问题,所有人都可以帮助我的是,也许我正在将信息从片段 a 传递到 b 并要求将其显示在b 当尚未创建 b 的视图时.. 所以我想知道如何确保已创建另一个片段的视图?但我的主要问题仍然是如何在片段之间传递数据???我问了两个与此相关的问题 Unable to pass data between Fragments.....TextView throws NullPoint Exception and 如何在片段之间传递数据?

我遵循了开发网站中给出的例子

4

1 回答 1

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);
    }
}
于 2013-09-20T11:57:00.253 回答