Как получить динамический спиннер выбранного элемента в массиве? - PullRequest
0 голосов
/ 04 июля 2018

Я отлично создал динамический блесна, как показано ниже

        k++;
        flag=k;
        final LinearLayout.LayoutParams lparams = new 
        LinearLayout.LayoutParams(380,120);
        lparams.setMargins(1, 20, 1, 0);
        colorSpinner[flag] = new Spinner(getActivity());
        colorSpinner[flag].setLayoutParams(lparams);
        colorSpinner[flag].setId(flag);
        colorSpinner[flag].setAdapter(new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_dropdown_item, color_list));

        loadColorSpinnerData(URL);

        colorSpinner[flag].setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l)
            {
                color_id = datalist1.get(i).getId();
            }
            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
                // DO Nothing here
            }
        });

mLayout.addView(colorSpinner[flag]);

color_array.add(colorSpinner[flag]);

Как получить идентификатор цвета в массиве

это не работа

String[] Acolorid = new String[color_array.size()];
    for(int i = 0; i < color_array.size(); i++){
        Acolorid[i] = String.valueOf(color_array.get(i).getSelectedItemPosition()+1); //Acolorid[j]= String.valueOf(color_id);//color_array.get(i).getSelectedItem().toString();
        Hcolorid=String.join(",",Acolorid);
    }

Пожалуйста, дайте мне решение, я хочу получить идентификатор цвета в массиве, а не получить позицию элемента.

1 Ответ

0 голосов
/ 04 июля 2018

Один из способов сделать это - использовать View.setTag () для хранения данных, которые вы хотите получить позже. Что-то вроде:

     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l)
        {
            // get some data related to the selected item
            color_id = datalist1.get(i).getId();
            // attach it to the spinner
            adapterView.setTag(color_id);
        }
        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {
            // DO Nothing here
        }

Получить позже:

String[] Acolorid = new String[color_array.size()];
    for(int i = 0; i < color_array.size(); i++){
        // get the saved data
        Object data = color_array.get(i).getTag();
        if (data != null) {
            Acolorid[i] = data.toString();
        }
    }
    Hcolorid=String.join(",",Acolorid);
...