Putextras不工作

时间:2013-01-07 19:19:43

标签: java android

我有多个变量从一个活动传递到另一个活动。

我在第一项活动中有这个:

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”是键。

2 个答案:

答案 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尚未声明或初始化。您可以正确地将它们发送到其他活动。