Android Fragement getArguments()返回null
我试图将数据从活动传递到片段,但在Bundle.getString()上得到一个空指针 我还注意到,即使没有片段事务代码,它也会转到片段 片段:Android Fragement getArguments()返回null,android,android-fragments,Android,Android Fragments,我试图将数据从活动传递到片段,但在Bundle.getString()上得到一个空指针 我还注意到,即使没有片段事务代码,它也会转到片段 片段: public class MainFragment extends BrowseFragment { @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceStat
public class MainFragment extends BrowseFragment {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Bundle bundle = this.getArguments();
String myValue = bundle.getString("message");
}
活动
public class MainActivity extends FragmentActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bundle bundle = new Bundle();
String myMessage = "Stackoverflow is cool!";
bundle.putString("message", myMessage );
MainFragment fragInfo = new MainFragment();
fragInfo.setArguments(bundle);
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.main_browse_fragment, fragInfo);
transaction.commit();
}
activity_main.xml
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_browse_fragment"
android:name="my.package.MainFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
tools:deviceIds="tv"
tools:ignore="MergeRootFrame" />
将xml布局中的片段更改为简单框架布局。从xml创建片段会导致异常,因为它没有参数(它们是在活动代码中手动添加的)将xml布局中的片段更改为simple FrameLayout。从xml创建片段会导致异常,因为它没有参数(它们是在活动代码中手动添加的)使用getArguments().getX(键)代码>而是Bundle=this.getArguments()因为getArguments()代码>看这里,请提供实际堆栈trace@MohamedRa不起作用。getArguments()将返回nullHaveFrameLayout
,并用XML中的ID替换它。@code511788465541441,如Eugen所说。容器(通常是框架布局)使用getArguments().getX(键)代码>而是Bundle=this.getArguments()因为getArguments()代码>看这里,请提供实际堆栈trace@MohamedRa不起作用。getArguments()将返回nullHaveFrameLayout
,并用XML中的ID替换它。@code511788465541441,如Eugen所说。容器(通常是框架布局)