OnItemSelectedListener счетчика не работает в адаптере списка - PullRequest
0 голосов
/ 09 июня 2018

Я реализовал spinner (в диалоговом режиме) в ListView, который открывается при нажатии на кнопку.Но OnItemSelectedListener не работает в адаптере. Мой Adpater код приведен ниже:

public class MarkAttendanceAdapter extends ArrayAdapter implements                                                                                           SectionIndexer {

View v;
public MarkAttendanceAdapter(@NonNull Context context) {
    super(context, -1);
}

@Override
    public int getCount() {
        return super.getCount();
    }

@NonNull
    @Override
    public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {
 v = LayoutInflater.from(context).inflate(R.layout.lv_child_mark_attendance, parent, false);
 final Spinner action_Spinner = (Spinner) v.findViewById(R.id.spinner_action);
 final ArrayList<ItemDataOfSpinner> list = new ArrayList<>();

        list.add(new ItemDataOfSpinner("Absent", R.drawable.icon_a));
        list.add(new ItemDataOfSpinner("Comp-Off", R.drawable.icons_o));
        list.add(new ItemDataOfSpinner("Half-Day", R.drawable.icon_h));
        list.add(new ItemDataOfSpinner("Weekly-Off", R.drawable.icon_w));
        list.add(new ItemDataOfSpinner("Holiday", R.drawable.icon_h));
        list.add(new ItemDataOfSpinner("Leave", R.drawable.icon_l));

        SpinnerAdapter spinnerAdapter = new SpinnerAdapter(context, R.id.txt, list);
        action_Spinner.setAdapter(spinnerAdapter);
        action_Spinner.setOnItemSelectedListener(new AdapterView.OnitemSelectedListener {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                Log.d(TAG,"It Worked selected");
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
                Log.d(TAG,"It Worked but nothing selected");
            }
        });
return v;
}
}

Если это не сработало или это плохая практика, я должен использовать вместо этого диалоговое окно?Все ответы будут полезны.Спасибо

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Попробуйте это

action_Spinner.setOnItemSelectedListener(new OnItemSelectedListener() 
    {
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
        {
           // do your stuff
        } // to close the onItemSelected
        public void onNothingSelected(AdapterView<?> parent) 
        {
           // do your stuff

        }           
    });
0 голосов
/ 09 июня 2018

Я думаю, что это может быть проблема перекрытия кликов .. Добавьте ваше представление spinnerAdapter (xml) это:

android:focusable="false"
android:focusableInTouchMode="false"

Я не уверен, но может быть это ..

...