Android Studio:通过另一个变量传递变量不起作用

时间:2017-06-15 15:02:05

标签: java android

我为MainActivity创建了一个方法,将String传递给我的SecondActivity。

public void convertCurrency(View view)
{
   intent.putExtra("NO", "My String");
   startActivity(intent);
}

但是我的OnCreate方法中的SecondActivity

    Button back = (Button) findViewById(R.id.back);
    TextView t = (TextView) findViewById(R.id.first_text);

    Intent intent = new Intent(this, MainActivity.class);

    String g = intent.getStringExtra("NO");
    t.setText(g);

什么都没发生。但是为什么?

5 个答案:

答案 0 :(得分:1)

以这种方式得到你的变量:

String yourVriable = getIntent().getStringExtra("NO")

不要新你的意图

答案 1 :(得分:0)

你正在创造新的意图。

在onCreate方法调用中

String data = getIntent().getStringExtra(key);

答案 2 :(得分:0)

替换Intent intent = new Intent(this, MainActivity.class);Intent intent = getIntent();

当您执行intent.getStringExtra("NO");时,您的意图对象是新的,因此他的Extra是空的。

答案 3 :(得分:0)

您需要更改两个活动中的代码。您需要创建意图并将字符串放入其中,因此您的代码将是。

public void convertCurrency(View view) { 
     Intent intent = new Intent(this, Main2Activity.class);
     intent.putExtra("NO","My String");                  
     startActivity(intent);
 }

请注意,在意图构造函数中,第一个参数是当前活动,第二个参数是您要启动的活动。因此,在第二个活动中,您需要接收字符串。代码就是,

Button back = (Button) findViewById(R.id.back); 
TextView t = (TextView) findViewById(R.id.first_text); 
String g = getIntent().getStringExtra("NO")
t.setText(g);

答案 4 :(得分:0)

我自己解决了这个问题。如果有两个具有相同名称的Intent对象,即使它们位于不同的方法中,也会发生错误。