小编sha*_*608的帖子

无法通过Bundle将数据传递给片段

我正在学习android基础知识,我在创建第一个应用程序时遇到了这个问题.我有一个活动将数据传递给片段.OnCreate活动的方法有一个这样的块:

    if(savedInstanceState == null){
        DetailActivityFragment detailFrag = DetailActivityFragment.newInstance(movieId);
        getSupportFragmentManager().beginTransaction().add(android.R.id.content,detailFrag).commit();
    }

    setContentView(R.layout.activity_detail);
Run Code Online (Sandbox Code Playgroud)

在片段(activity_detail),如果我执行getParameters(),我收到null.通过游戏,我发现如果我setContentView从上面的片段中删除方法,片段会显示数据.关于为什么这是一个问题的任何想法?谢谢!

编辑:这是片段中的静态newInstance方法

public static DetailActivityFragment newInstance(String id) {
    DetailActivityFragment fragment = new DetailActivityFragment();
    Bundle args = new Bundle();
    args.putString(Intent.EXTRA_TEXT, id);
    fragment.setArguments(args);
    return fragment;
}
Run Code Online (Sandbox Code Playgroud)

这是布局activity_detail中的片段:

<fragment android:name="app.appone.DetailActivityFragment"
android:id="@+id/fragment_detail"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Run Code Online (Sandbox Code Playgroud)

android android-fragments

2
推荐指数
1
解决办法
1012
查看次数

标签 统计

android ×1

android-fragments ×1