我有一个具有两个值 Aircon 和手机的arrayList,我需要做的是将arraylist的此值查看为不同的动态微调器布局并将其设置为默认值值
对于shor:动态字段微调器的数量取决于数组列表中有多少值
如果ArrayList A具有2个值,则动态字段微调器也为2。
我已经可以基于arrayList中的值数量查看微调器,但是我无法为每个微调器设置默认值。
这是我显示动态字段的代码
if (format.equalsIgnoreCase(Keys.SELECT)) {
if (title.equalsIgnoreCase(Keys.CATEGORY)) {
products = new ArrayList<String>();
mProductList = o.getJSONArray(Keys.LIST);
for (int k = 0; k < mProductList.length(); k++) {
products.add(mProductList.getString(k));
}
addTextViews(title);
addSpinner(products, mKeys.get(i));
addLineSeparator();
}
}
这是我尝试将其值放入动态微调框字段中的方法
public void addSpinner(ArrayList<String> stringArrayList, String id) {
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(convertDpToPixel(16),
convertDpToPixel(0),
convertDpToPixel(16),
convertDpToPixel(0)
);
mSpinner = new Spinner(getContext());
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1, stringArrayList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner.setAdapter(adapter);
mSpinner.setSelection(getSpinnerIndex(mSpinner, ArrayProducts));
mSpinner.setTag(id);
mSpinner.setLayoutParams(params);
mLinearLayout.addView(mSpinner);
}
这是getSpinnerIndex方法
private int getSpinnerIndex(Spinner mSpinner, ArrayList<String> myString) {
for (int i=0;i<mSpinner.getCount();i++){
if (mSpinner.getItemAtPosition(i).toString().equalsIgnoreCase(String.valueOf(myString))){
return i;
}
}
return 0;
}
预期结果
ArrayList的值:“空调”,“自行车”
微调框1的默认值:
Aircon
Spinner 2默认值:
Bike
实际结果
ArrayList的值:“空调”,“自行车”
微调框1的默认值:
Aircon
Spinner 2默认值:
Aircon