Android spinner, OnItemSelectedListener не вызывается при выборе того же элемента? - PullRequest
0 голосов
/ 10 ноября 2018

По определенной причине мне нужно, чтобы мои spinner 'OnItemSelectedListener вызывались, даже когда пользователь выбирает тот же элемент, но обычно это не так. Поэтому я не знаю, как это возможно! Любой трюк или библиотеки, которые могут решить мою проблему?

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

Убедитесь в контексте. Вы можете контекст как.

  • это

  • MainActivity.this

  • getApplicationContext ()

Если вы используете вращатель в Фрагмент , тогда вы можете использовать контекст как

* * GetActivity тысячи двадцать-одина () * +1022 *
String selectedItem;
String data[]={"Australia","Delhi","Agra","Mumbai","America","Tanzania","Arizona"};
spinner=(Spinner) findViewById(R.id.spinner);
ArrayAdapter<String> ad=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,data);
       spinner.setPrompt("Select State");
       spinner.setAdapter(ad);
    String val=spinner.getSelectedItem().toString();

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
           @Override
           public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
               String val=spinner.getSelectedItem().toString();

               selectedItem=data[i];

                 Toast.makeText(MainActivity.this, " "+selectedItem, Toast.LENGTH_SHORT).show();

           }

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

           }
       });
0 голосов
/ 10 ноября 2018

ки
Вы можете использовать addOnLayoutChangeListener

yourspinner.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
    @Override
    public void onLayoutChange(View view, int i, int i1, int i2, int i3, int i4, int i5, int i6, int i7) {
        Toast.makeText(context, "item is : " + yourspinner.getSelectedItemPosition(), Toast.LENGTH_SHORT).show();
    }
});
...