Мне нужно передать 2 переменных из одной активности в другую.putExtras multiple putString не работает
У меня есть следующий за первую деятельность:
@Override
public boolean onContextItemSelected(MenuItem item) {
Bundle bundle=new Bundle();
switch (item.getItemId()){
case 1:
bundle.putString(drinkButton, "4");
bundle.putString(drinkType, "1");
Intent myIntent1 = new Intent(this, DrinksList.class);
myIntent1.putExtras(bundle);
startActivityForResult(myIntent1, 0);
return true;
case 2:
bundle.putString(drinkButton, "1");
bundle.putString(drinkType, "2");
Intent myIntent2 = new Intent(this, DrinksList.class);
myIntent2.putExtras(bundle);
startActivityForResult(myIntent2, 0);
return true;
}
return false;
Затем во второй деятельности я использую это, чтобы получить значения обратно, но оба значения одинаковы т.е. так же, как «drinkType» Случая 1 I получите «1» для обоих и для случая 2. Я получаю «2» для обоих, когда я ожидаю получить 4,1 и 1,2.
Bundle extras = getIntent().getExtras();
drinkButton = extras.getString(drinkButton);
drinkType = extras.getString(drinkType);
Toast.makeText(this, "drink Button = "+drinkButton+" Drink Type = "+drinkType, Toast.LENGTH_LONG).show();
}
Кажется, я не могу пройти более одного дополнительного. Есть идеи?
Дважды проверьте значение 'drinkButton' и' drinkType', когда вы инициализируете их как 'String drinkButton ="? ";' –
Ass Adil предложил, проверьте значение String для drinkButton и drinkType. У меня такое чувство, что они одинаковые. Это объясняет, почему вы получаете 1 для случая 1 и 2 для случая 2, как если бы они были одинаковыми, второй putString (drinkType, «1/2») будет перезаписывать первый putString (drinkButton, «4/1»). Вы хотите иметь putString («drinkButton», «4/1») и putString («drinkType», «1/2»)? –
Вы пробовали hardcoding строковое значение в качестве ключа вместо использования строковой переменной, чтобы увидеть, получится ли у вас тот же результат? – bschultz