Ошибка выбора элемента Dynamic Spinners

Я создаю и динамически заполняю прядильщики, проблема заключается в том, что при выборе элементов (например: 4-й) любого прядильщика я получаю идентификатор последних прядильщиков, который создается динамически (4-й идентификатор). Я хочу получить соответствующий идентификатор, который я динамически установил для элементов счетчика.

Как правильно получить значения каждого счетчика.

Коды приведены ниже.

public void secondarray(JsonParser jsonParser) {
    String fieldName;
    ameList = new ArrayList<AmeModel>();
    AmeModel ameModel = null;

    try {
        while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
            ameModel = new AmeModel();
            while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
                fieldName = jsonParser.getCurrentName();
                if ("valueid".equals(fieldName)) {
                    jsonParser.nextToken();
                    ameModel.setId((jsonParser.getText()));

                } else if ("valuename".equals(fieldName)) {
                    jsonParser.nextToken();
                    ameModel.setName((jsonParser.getText()));


                } else {
                    jsonParser.skipChildren();
                }
            }
            ameList.add(ameModel);
        }


        Spinner sp=new Spinner(MainActivity.this);

        AmeAdapter adapter = new AmeAdapter(this, ameList);

        sp.setAdapter(adapter);
        sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {

                Toast.makeText(MainActivity.this, ameList.get(i).getId(), Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });

        container.addView(sp);

        //setContentView(linearlayout);

    } catch (JsonParseException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }

}

Любая помощь будет оценена спасибо.


person Sachin Varma    schedule 23.11.2016    source источник
comment
С какой проблемой вы столкнулись @Sachin Varma   -  person Mukeshkumar S    schedule 23.11.2016
comment
если я выбираю 2-е положение первого счетчика, я получаю значение 2-го положения последнего счетчика. Я хочу получить значения в соответствии с элементами в соответствующих счетчиках.   -  person Sachin Varma    schedule 23.11.2016
comment
Я думаю, что проблема со списком, список, наконец, заполняется последними элементами массива. Так что только я получаю его элементы на всех других счетчиках. Как я могу получить правильные элементы из выбора счетчика. спасибо.   -  person Sachin Varma    schedule 23.11.2016


Ответы (1)


Для получения имени выбранного элемента:

String itemName=sp.getSelectedItem().toString(); // sp is your spinner

Для получения позиции выбранного элемента:

 int position = sp.getSelectedItemPosition();

Теперь в соответствии с вашим фрагментом кода. Если вы хотите получить Id Те, которые вы установили динамически.

   HashMap<String, String> nameId;
   String itemId;
   String itemName= String.valueOf(sp.getSelectedItem());

   for (String s : nameId.keySet()) {

            if (nameId.get(s).equals(itemName)) {

                itemId= s;

            }

Попробуйте использовать приведенное выше предложение

person Nitin Karande    schedule 23.11.2016
comment
Братан, это поможет мне получить имя того, который выбран, только правильно, но я также хочу получить его идентификатор ... который я установил динамически, как это получить ??? - person Sachin Varma; 23.11.2016
comment
Проверьте решение для редактирования. Это будет вы получите представление. - person Nitin Karande; 23.11.2016