получить значение null для arraylist при следующем действии

116
8

пожалуйста, помогите me.i хотите передать список элементов списка, количество, количество и курс из операции заказа на следующий порядок подтверждения активности... но при следующем действии, получающем нулевое значение для этого списка массивов, что я могу сделать?

код оформления заказа

 Intent intent = new Intent(MakeOrder.this,Demo.class);
intent.putStringArrayListExtra("selectedItems",strItemNameAlert);
intent.putStringArrayListExtra("selectedRates",strRateAlert);
intent.putStringArrayListExtra("selectedQuantity",strQuantityAlert);
intent.putStringArrayListExtra("selectedAmount",strAmountAlert);
intent.putStringArrayListExtra("selectedId",strItemIdAlert);
startActivity(intent);

Код для подтверждения заказа

public class ConfirmOrder extends Activity {

ArrayList<String> resultArrItemname;
ArrayList<String> resultArrItemrate;
ArrayList<String> resultArrItemquantity;
ArrayList<String> resultArrItemamount;
ArrayList<String> resultArrItemid;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.demo);

resultArrItemname=new ArrayList<String>();
resultArrItemrate=new ArrayList<String>();
resultArrItemquantity=new ArrayList<String>();
resultArrItemamount=new ArrayList<String>();
resultArrItemid=new ArrayList<String>();
Intent intent1=new Intent();
resultArrItemname = intent1.getStringArrayListExtra("selectedItems");
resultArrItemrate = intent1.getStringArrayListExtra("selectedRates");
resultArrItemquantity = intent1.getStringArrayListExtra("selectedQuantity");
resultArrItemamount = intent1.getStringArrayListExtra("selectedAmount");
resultArrItemid = intent1.getStringArrayListExtra("selectedId");

}

спросил(а) 2021-01-25T12:57:03+03:00 5 месяцев назад
1
Решение
108

использование

 Intent intent1=this.getIntent();

вместо

 Intent intent1=new Intent();

для получения значения в следующей операции

ответил(а) 2021-01-25T12:57:03+03:00 5 месяцев назад
45

В операции ConfirmOrder вы создаете новое пустое намерение, делая это.

Intent intent1 = new Intent();

Так определенно intent1.getStringArrayListExtra("selectedItems"); это вернет null потому что ничего не найдено с помощью selectedItems String внутри намерения1. Вы должны вызвать getIntent(String uri) класса Intent чтобы получить значения, выставленные в вашем первом действии.

Использование:


Intent intent1=this.getIntent();
intent1.getStringArrayListExtra("selectedItems");

Примечание.

public static Intent   getIntent  (String uri)

Этот метод был устаревшим в API-уровне 4. parseUri(String, int) используйте parseUri(String, int).

ответил(а) 2021-01-25T12:57:03+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема