我将微调控制项的选定项存储在一个数组"selectedPayment[]“中,该数组也存储许多null值,因此我将该数组转换为一个列表"payMode”。问题是当我存储元素时,列表将元素存储在错误的索引中。当我将数组转换为List时会出现问题,因为数组在正确的索引处存储项目。
例如:我得到现金,贝宝,礼品卡,优惠券在一个列表中,这是不正确的,因为我需要在贝宝,优惠券,现金,礼品卡顺序存储元素。
请告诉我哪里出了错。
代码:
public void onItemSelected(AdapterView<?> parent, View v, int position,
long arg3) {
if (parent == spinner_paymentOption) {
selectedPayment[position] = paymentOptionList.get(position);
System.out.println("=====selll "+selectedPayment[position]);
payMode = new ArrayList<String>(Arrays.asList(selectedPayment));
payMode.remove(0);
payMode.removeAll(Collections.singleton(null));
System.out.println("====paymode==="+payMode);
if (!(spinner_paymentOption.getSelectedItemPosition() == 0)) {
isTrue = true;
if (items.contains(position)) {
Toast.makeText(
mActivity,
"You have already selected "
+ selectedPayment[position],
Toast.LENGTH_LONG).show();
} else {
counter++;
createDynamicPaymentLayout(position);
}
}
}
}
发布于 2015-09-15 17:11:04
在监听程序外部创建payMode数组列表,如下所示:
payMode = new ArrayList<String>();
并将所选项目添加为:
(您可以将下面的几行放在后面
selectedPayment[position] = paymentOptionList.get(position); )
payMode.add(paymentOptionList.get(position));
然后去掉这个:
payMode = new ArrayList<String>(Arrays.asList(selectedPayment));
payMode.remove(0);
payMode.removeAll(Collections.singleton(null));
https://stackoverflow.com/questions/32581912
复制相似问题