在将数据从片段传递到Activity时获得Null值

时间:2013-05-28 12:50:58

标签: android android-intent bundle android-fragmentactivity

我正在使用片段并遇到以下问题:

  1. 从片段传递数据时,我使用bundle来传递整数 价值并通过意图发送。
  2. 我是通过使用意图来调用它们。
  3. 但是,虽然我正在打印,但我只获得 Null 值。
  4. 来自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 个答案:

答案 0 :(得分:8)

你必须使用(注意putExtra s 末尾的s)

 in.putExtras(bundle);

否则您无法使用getIntent().getExtras();

直接检索它

答案 1 :(得分:2)

如果您使用Bundle传递Intent.putExtra,请在第二个活动中获取它:

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

int value = bundle.getInt("myData");//<extract values from Bundle using key

答案 2 :(得分: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);

答案 3 :(得分:0)