【发布时间】:2013-12-19 18:03:40
【问题描述】:
我正在使用以下代码为从 XML 膨胀的片段设置参数:
fragment_phone=(AddNewFragment)fm.findFragmentById(R.I'd.phone_fragment);
Bundle args=fragment_phone.getArguments();
if(args==null)
{
args=new Bundle();
args.putString("hint","Phone");
fragment_phone.set arguments(args);
}
else
args.putString("hint","Phone");
//Similarly for two other fragments that are also instances of AddNewFragment
我使用三个Bundle 对象,每个片段一个。
Logcat 说Fragment is already active java.lang.IllegalStateException at android.support.v4.app.setArguments
我尝试删除setArguments,当我调用它时会导致NullPointerException:
Bundle args=get arguments();
String hint=args.getString("hint");
Log.d(TAG," Hint :"+hint);
【问题讨论】:
-
您不能为 xml 布局中定义的片段设置参数。
-
那我怎么给他们传递任何值,我可以在 XML 中定义时这样做
-
不在 xml 中。您可以手动添加它们并使用带有 setArguments() 的 Bundles,或者您可以在它们上调用 setter 方法(但您需要自己保存数据,因为它不会像参数一样自动保存)。
标签: android android-fragments nullpointerexception illegalstateexception