#android #android-activity #bundle
#Android #android-активность #пакет
Вопрос:
я пытаюсь отправить два пакета одновременно из одного действия в другое, и мне не повезло.. я могу отправить пакет нормально, но когда я пытаюсь отправить два, я получаю нулевой указатель. вот мой код:
Activity A,
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TextView name = (TextView) v.findViewById(R.id.label2);
TextView number1 = (TextView) v.findViewById(R.id.label);
Intent i = new Intent(this, options_Page.class);
// Bundle bundle2 = new Bundle();
Bundle bundle1 = new Bundle();
bundle1.putString("title", number1.getText().toString());
// bundle2.putString("title2", name.getText().toString());
i.putExtras(bundle1);
// i.putExtras(bundle2);
startActivity(i);
Activity B,
Bundle bundle1 = this.getIntent().getExtras();
// Bundle bundle2 = this.getIntent().getExtras();
String title = bundle1.getString("title");
// String title2 = bundle2.getString("title2");
((TextView) findViewById(R.id.tvnumber)).setText(title);
// ((TextView) findViewById(R.id.tvname)).setText(title2);
используя этот код в том виде, в каком он есть сейчас, он отправляет один пакет (номер) без проблем, если кто-нибудь знает, как я могу отправить другой (имя), это действительно помогло бы мне.
Заранее спасибо…
Комментарии:
1. я не уверен, нужны ли два пакета, я должен назвать и пронумеровать одно действие в списке, которое мне нужно отправить на другое действие. Спасибо
Ответ №1:
Вы можете send more then one bundle
, но для ваших нужд из текущего сценария вам это не нужно, просто используйте один,
Попробуйте это, нет необходимости в 2 пакетах,
В упражнении A,
Intent i = new Intent(this, options_Page.class);
i.putExtras("title", number1.getText().toString());
i.putExtras("number", number2.getText().toString());
startActivity(i);
В упражнении B,
String value1 = getIntent().getExtras("title");
String value2 = getIntent().getExtras("number");
или
Bundle extras = getIntent().getExtras();
if (extras == null) {
return;
}
String value1 = extras.getString("title");
String value2 = extras.getString("number");
Спасибо.
Ответ №2:
Сначала вам не нужно передавать два пакета, но на ваш вопрос я проверил его на своем конце и на вас can pass 2 or more than 2 bundle
.
вам нужно извлечь значение пакета следующим образом:
Bundle bundle1 = getIntent().getBundleExtra("bun1");
boolean value1 = bundle1.getBoolean("value1");
Bundle bundle2 = getIntent().getBundleExtra("bun2");
boolean value2 = bundle2.getBoolean("value2");