3

我正在处理片段并遇到以下问题:

  1. 在从片段传递数据时,我使用 bundle 传递整数值并通过意图发送它们。
  2. 我正在使用 intent 给他们打电话。
  3. 但是当我打印时,我只得到Null值。

来自fragment

Bundle bundle = new Bundle();
bundle.putInt("myData", x);
Intent in=new Intent(getActivity(),B.class);
in.putExtra("xy", bundle);
startActivity(in);

Activity

Intent in=getIntent();
Bundle bundle = getIntent().getExtras();
int value = bundle.getInt("myData");
Log.v("in mainactivity",""+value);

在这里它得到 Null 值。我希望你明白这个问题。

4

4 回答 4

9

您必须使用(注意 s 末尾的putExtras

 in.putExtras(bundle);

否则你不能直接用 getIntent().getExtras();

于 2013-05-28T12:52:27.283 回答
2

如果你通过BundleusingIntent.putExtra然后像第二个 Activity 一样获取它:

Bundle bundle = getIntent().getBundleExtra("xy");   //<< get Bundle from Intent

int value = bundle.getInt("myData");//<extract values from Bundle using key
于 2013-05-28T12:57:49.190 回答
1

代替:

 Bundle bundle = new Bundle();
                bundle.putInt("myData", x);
                Intent in=new Intent(getActivity(),B.class);
                in.putExtra("xy", bundle);
                startActivity(in);

您可以简单地通过以下方式传递数据:

            Intent in=new Intent(getActivity(),B.class);
            in.putExtra("myData", x);
            startActivity(in);
于 2013-05-28T12:55:58.140 回答
0

我认为以下链接可以帮助您。

http://laaptu.wordpress.com/tag/android-passing-data-from-activity-to-fragment/

于 2014-05-06T18:58:12.710 回答