Функция прослушивания Spinner OnItemSelectedListener без нажатия на счетчик - PullRequest
0 голосов
/ 02 октября 2019

У меня есть задание Advanced Research с вращателем, который содержит все категории из моей базы данных. Когда я создаю деятельность, этот спиннер вызывает onSetItemListener в цикле. Почему?

Я пытаюсь использовать onTouchListener, но не работает, может быть, что-то не получается.

if(risultato.getCategoria().getSottocategorie().toArray() != null && risultato.getCategoria().getSottocategorie().toArray().length != 0){
                adapterSpinnerCategoria = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, risultato.getCategoria().getSottocategorie().toArray());
            }else{
                adapterSpinnerCategoria = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, categoriaVuota);
            }
            spinnerCategoria.setAdapter(adapterSpinnerCategoria);



 public void spinnerChange(AdapterView<?> parent){
        if(!parent.getSelectedItem().toString().equals("Sottocategorie vuote")) {
            ricercaAvanzata.setCategoria((Categoria) parent.getSelectedItem());
            setArticoli();
        }
    }

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        spinnerChange(parent);
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
        return;
    }



 public void setListener() {
        spinnerCategoria.setOnItemSelectedListener(this);
    }


public class ActivityRicercaAvanzata extends AppCompatActivity implements AdapterView.OnItemSelectedListener { .... }

Я ожидаю, что когда я нажму на спиннер, вызов onItemSelected не раньше

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

Хорошо, отметьте как решенное. Я создаю новый список и конвертирую его в список. После этой операции я добавляю нулевой элемент в первую позицию, и когда я вызываю onItemSelected, я делаю

if (position! = 0), затем // делаем что-то

Деятельность начинается всегда спозиция 0 тогда должна ждать моего клика и моего выбора. Спасибо за помощь.

0 голосов
/ 03 октября 2019

Я использую Spinner для выбора страны для регистрации пользователя. Пожалуйста, проголосуйте за мой ответ.

Spinner spcountry;
String  country;

//in onCreare
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

spcountry = (Spinner) findViewById(R.id.country);
        final String[] countryNames = getResources().getStringArray(R.array.countries_array);
        ArrayAdapter aa = new ArrayAdapter(this, android.R.layout.simple_spinner_item, countryNames);
        aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        //Setting the ArrayAdapter data on the Spinner
        spcountry.setAdapter(aa);


spcountry.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                Log.v("item", (String) parent.getItemAtPosition(position));
                if (position == 0) {

                    return;
                } else
                    country = countryNames[position];
                //Toast.makeText(getBaseContext(),country,Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // TODO Auto-generated method stub
            }
        });
}
...