2016-12-18 13 views
0

是從main.java發送幾個變量:Android:如何用Intent發送多個變量?

Bundle bund = new Bundle(); 
    Intent intent = new Intent(this, newWindow.class); 
    String name = editName.getText().toString(); 
    bund.putString(yourName, name); 
    String pass= editPassword.getText().toString(); 
    bund.putString(yourPass,pass); 
    String mail=EditMail.getText().toString(); 
    bund.putString(yourMail,mail); 
    intent.putExtras(bund); 
    startActivity(intent); 

newWindow.java

 Intent intent = getIntent(); 
     Bundle extras = intent.getExtras(); 
      String name = extras.getString(main.yourName); 
      String mail = extras.getString(main.yourMail); 
      String pass = extras.getString(main.yourPass); 
     viewText1 = (TextView) findViewById(R.id.textView2); 
     viewText2 = (TextView) findViewById(R.id.textView3); 
     viewText3 = (TextView) findViewById(R.id.textView4); 
     viewText1.setText(name); 
     viewText2.setText(mail); 
     viewText3.setText(pass); 

問題是,只有最後一個變量傳遞,並在所有3 TextView中的

+1

真正的外賣這裏:如果你不明白「 「,」「和」「是**相同的**字符串;並且使用這三個字符串作爲地圖的關鍵字只會導致**一個**值被放入;那麼很好,你應該停止做一段時間的android。相反,你應該閱讀一些關於java基礎知識的教程。否則,你註定會**在另一個之後遇到一個「奇怪」的問題;因爲,對不起,但你不知道你在做什麼。 – GhostCat

+0

只是爲了記錄:類名在java中以大寫開頭;總是。 – GhostCat

回答

3

據推測表明,您在所有情況下都使用相同的密鑰。換句話說,您的yourName的值與yourPass的值相同,與yourMail的值相同。這些需要有獨特的價值。通常,我們使用static final String鍵爲Bundle

+0

在主要。我已經聲明 'public final static String yourName =「」;' 'public final static String yourPass =「」;' 'public final static String yourMail =「」;' – Darius92

+0

@ Darius92:這些都是一樣的。你需要改變它們的不同,比如'public final static String yourName =「yourName」;'等等。 – CommonsWare

+0

非常棒......! – GhostCat

0

爲什麼不避免Bundle部分?

只需在FirstActivity,試試這個

Intent intent = new Intent(this, NewWindow.class); 
String name = editName.getText().toString(); 
String pass= editPassword.getText().toString(); 
String mail=EditMail.getText().toString(); 
intent.putExtra("name",name); 
intent.putExtra("mail",mail); 
intent.putExtra("pass",pass); 
startActivity(intent); 

然後在RecievingActivity做到這一點

Intent extras=getIntent(); 
String name = extras.getStringExtra("name"); 
String mail = extras.getStringExtra("mail"); 
String pass = extras.getStringExtra("pass"); 
viewText1.setText(name); 
viewText2.setText(mail); 
viewText3.setText(pass); 

讓我知道這是否有助於