Android:意图通过null



我必须将字符串从一个活动传递到另一个活动。

在Activiy1中我做了:

String modello=nomiImmagini[position];
Intent nomeModello = new Intent(getApplicationContext(), Activity2.class);
nomeModello.putExtra("modello", modello);

如果我做了像

这样的吐司,则数组nomimmagini [tosition]的值不是null
Toast.makeText(getApplicationContext(),
                "Selezionato " + nomiImmagini[position], Toast.LENGTH_SHORT).show();

它正常工作。

在Activity2中我做了:

String modello = getIntent().getStringExtra("modello");

但这里的结果为null!

我该如何解决?我是Android的初学者,也许我不明白意图。

启动Activity 2:

时,您需要传递意图
Activity1.this.startActivity(nomeModello);

然后在您的aciTivty2的发作中:

String modello = getIntent().getExtras().getString("modello");

您可能具有vistion2:singlesinstance的启动模式:

<activity
        ...
    android:launchMode="singleInstance"
        ...
>

,如果存在而不是创建新的实例。因此,我建议将此标志添加到您的意图中:

nomeModello.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

,您的代码将是:

String modello=nomiImmagini[position];
Intent nomeModello = new Intent(getApplicationContext(), Activity2.class);
nomeModello.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
nomeModello.putExtra("modello", modello);

正如Blackbelt所述,您应该通过此意图调用Activity2 nomemodell ,因此它将像:startActivity(nomeModello);

在第一个活动中,您需要以下操作:

startActivity(nomeModello);

在您获取数据的第二个,如果那不起作用,请尝试以下操作:

    Bundle extras = getIntent().getExtras();
    if (extras != null)
        String modello = extras.getString("modello");

相关内容

  • 没有找到相关文章

最新更新