2016-12-18 11 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); 

让我知道这是否有助于