在片段之间传递数据

时间:2013-11-17 21:42:31

标签: android android-fragments bundle

我想将用户ID从主Activity转移到片段。

所以在主要活动中,我这样做:

 Fragment fragment = new Fragment();
 final Bundle bundle = new Bundle();
 bundle.putString("id_User", id);
 Log.i("BUNDLE", bundle.toString());
 fragment.setArguments(bundle); 

在日志中我可以看到

BUNDLE : Bundle[{id_User=1}]

在片段中,我在onCreate

中测试它
Bundle arguments = getArguments();
if (arguments != null)
{
Log.i("BUNDLE != null","NO NULL");
} else {
Log.i("BUNDLE == null","NULL");
}

我有

BUNDLE == null: NULL

所以传输成功了,但是我怎样才能收到碎片中的数据呢?

2 个答案:

答案 0 :(得分:11)

您可以使用:

 Bundle args = getArguments();
 if (args  != null && args.containsKey("id_User"))
     String userId = args.getString("id_User");

答案 1 :(得分:2)

只需使用:

String User = getArguments().getString("id_User", "Default Value");

如果您请求的密钥不存在,将返回您提供的默认值。