У меня есть этот arrayList, который имеет два значения Aircon и Мобильный телефон , и мне нужно лишь просмотреть это значение массива в другой динамический макет счетчика и установить его в качестве значения по умолчанию
для краткости: количество спиннеров динамического поля зависит от того, сколько значений внутри массива
если 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: "Aircon", "Bike"
Значение по умолчанию для Spinner 1:
Aircon
Значение по умолчанию Spinner 2:
Bike
Фактический результат
значение ArrayList: "Aircon", "Bike"
Значение по умолчанию для Spinner 1:
Aircon
Значение по умолчанию Spinner 2:
Aircon