我必须将字符串从一个活动传递到另一个活动。
在Activiy1中我做了:
String modello=nomiImmagini[position];
Intent nomeModello = new Intent(getApplicationContext(), Activity2.class);
nomeModello.putExtra("modello", modello);
如果我做了像
这样的吐司,则数组nomimmagini [tosition]的值不是nullToast.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");