我有多个变量要从一个活动传递到另一个活动。
我在第一个活动中有这个:
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是字符串,“name0”是键。
最佳答案
你所显示的代码没有问题。
String name0 = extras.getString("Name 1");
name0
这里有正确的值:""
。如果它没有正确地发送附加文件,那么它将是null
,并且会在NullPointerException
上给您一个.setText()
。extras.putString("Name 1", sName0);
extras.putString("Name 1", sName1);
这里,您用值
"Name 1"
覆盖sName1
,该值可能为空。我假设你想改为发送sName0
。关于java - Putextras不工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14202582/