我有多个变量从一个活动传递到另一个活动。
我在第一项活动中有这个:
public void onClick(View v) {
switch(v.getId()){
case R.id.bStartGame:
Intent i = new Intent(StartScreen.this, GameScreen.class);
Bundle extras = new Bundle();
extras.putString("Name 0", sName0);
extras.putString("Name 1", sName1);
extras.putString("Name 2", sName2);
.
.
.
i.putExtras(extras);
StartScreen.this.startActivity(i);
finish();
break;
在第二项活动中,我有这个:
Intent i = getIntent();
Bundle extras = i.getExtras();
String name0 = extras.getString("Name 0");
TextView test = (TextView) findViewById(R.id.tvTEST);
test.setText(name0);
然而,当我这样做时,textview显示什么都没有。我该如何解决这个问题?
编辑:在我的第一项活动中:
name0 = (EditText) findViewById(R.id.etName0);
sName0 = name0.getText().toString();
和所有其他名称及其相关参考文献相同。
另外,为了澄清,name0是edittext,sName0是字符串,“Name 0”是键。
答案 0 :(得分:4)
您所显示的代码没有错。
String name0 = extras.getString("Name 1");
name0
此处有正确的值:""
。如果它没有正确发送附加内容,则为null
,并会在NullPointerException
上为您提供.setText()
。
extras.putString("Name 1", sName0);
extras.putString("Name 1", sName1);
在这里,您使用"Name 1"
的值覆盖sName1
,这可能是空白的。我假设您要发送sName0
。
答案 1 :(得分:0)
在您显示的代码中,sNameXX尚未声明或初始化。您可以正确地将它们发送到其他活动。