Как установить каждое значение массива в каждом динамическом счетчике и установить его в качестве значения по умолчанию? - PullRequest
0 голосов
/ 01 июня 2019

У меня есть этот 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
...