отправка нескольких пакетов одновременно

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