2016-12-18 7 views
0

Высылаю несколько переменных из main.java:Android: Как отправить более 1 переменной с 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

Реальный вынос здесь: если вы не понимаете, что " "," "и" "являются ** одинаковой ** строкой; и что использование этих трех строк в качестве ключей к карте приводит только к ** одному ** значению; то хорошо, вы должны прекратить делать андроид в течение некоторого времени. Вместо этого вы должны прочитать несколько руководств по основам java. В противном случае вы ** обречены **, чтобы столкнуться с одной «странной» проблемой после другой; потому что, извините, но вы не знаете, что делаете. – GhostCat

+0

И только для записи: имена классов начинаются в верхнем регистре в java; всегда. – GhostCat

ответ

3

Предположительно только последняя переменная, вы используете один и тот же ключ во всех случаях. Другими словами, ваше значение yourName совпадает с значением yourPass, которое совпадает с значением yourMail. Они должны иметь уникальные значения. Обычно мы используем static final String ключей для Bundle.

+0

в основном. java я объявил '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); 

Позвольте мне знать, если это помогает