2017-06-15 53 views
0

我爲我的MainActivity創建了一個方法來將字符串傳遞給我的SecondActivity。Android Studio:通過另一個變量傳遞變量不起作用

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

但在我SecondActivity在我的onCreate方法

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); 

什麼也沒有發生。但爲什麼?

回答

0

我自己解決問題。如果您有兩個具有相同名稱的Intent對象,即使它們位於單獨的方法中,也會發生錯誤。

1

得到這樣你的變量:

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

沒有新的你的意圖

+0

我試過了,但我收到一條錯誤消息「貨幣轉換器停止。」 –

+0

給我你的一段代碼 – Meikiem

+0

這裏:https://www.dropbox.com/s/a3ruwcrfrcf916a/javacodes.zip?dl=0 –

0

你正在創造新的意圖。

在onCreate方法調用

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

我試過了,但我收到一條錯誤消息「貨幣轉換器停止。」 –

0

取代Intent intent = new Intent(this, MainActivity.class); 通過Intent intent = getIntent();

當你做intent.getStringExtra("NO");你的意圖對象是新的,所以他的Extra是空的。

+0

我試過了,但我收到一條錯誤消息「貨幣轉換器停止。」 –

0

您需要更改這兩個活動中的代碼。你需要創建意圖,並把你的字符串,所以你的代碼將會。

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

注意,在意向構造函數中的第一個參數是當前活動,第二個參數將是你starting.So在您需要收到該字符串的第二活動的活動。代碼將是,

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

我試過了,但我收到一條錯誤消息「貨幣轉換器停止停止」。 –

+1

你可以用堆棧跟蹤嗎? –