getIntent返回null

时间:2016-02-11 07:12:46

标签: android android-intent

我遇到过很多与此类似的问题,但我无法解决,即使我正在以正确的方式做到这一点。

我以这种方式发送字符串:

        Intent intent = new Intent(this,MainActivity.class);
        intent.putExtra("APP_PACKAGE_EXTRAS", "com.facebook.katana");

        if (null != intent) {
            startActivity(intent);
        }

我用这种方式接收它:

        Intent IntentExtras = getIntent();
        String Package = IntentExtras.getExtras().getString("APP_PACKAGE_EXTRAS");

我正在接受NPE,为什么?

4 个答案:

答案 0 :(得分:1)

使用

  Intent intentExtras = getIntent();
        String Package = intentExtras.getStringExtra("APP_PACKAGE_EXTRAS");

而不是

  Intent IntentExtras = getIntent();
        String Package = IntentExtras.getExtras().getString("APP_PACKAGE_EXTRAS");

答案 1 :(得分:0)

<强>发件人

    Intent intent = new Intent(this,MainActivity.class);
    intent.putExtra("APP_PACKAGE_EXTRAS", "com.facebook.katana");
    startActivity(intent);

<强>接收机

String Package;

内部OnCreate方法

Package=getIntent().getExtras().getString("APP_PACKAGE_EXTRAS");

在Receiver中编辑

  if(intent.getExtras() == null) {

       Log.e("null",null);

    } else {

   Package=getIntent().getExtras().getString("APP_PACKAGE_EXTRAS");

    Log.e("Package", Package);

    }

答案 2 :(得分:0)

在您的第一项活动中:

Intent i = new Intent(ActivityA.this, ActivityB.class);
i.putExtra("a", "b");
startActivity(i);

在你的第二项活动中:

String text = getIntent().getStringExtra("a");

答案 3 :(得分:0)

试试这个,

在Intent的扩展数据中设置值(这应该是用于额外数据名称的正确方法&#39; packagePrefix.dataName&#39;)

  Intent intent = new Intent(context,Activity.class);
  intent.putExtra("com.google.exampleapp.KeyName", value);

从Intent的扩展数据中检索值

  Bundle extras = getIntent().getExtras();
    if (extras != null)
    {
            messageCount = extras.getString("com.google.exampleapp.KeyName");
    }