Listview ArrayAdapter setItemChecked не выделяет выделенную ячейку, а повторный выбор ячейки не отменяет выделение - PullRequest
0 голосов
/ 20 ноября 2018

Доброе утро, у меня есть просмотр списка, который я хочу заполнить значениями String с помощью ArrayAdapter, я получил всю эту работу, за исключением того момента, когда он изначально запускается, мне нужно выбрать и выделить "текущий выбранный элемент"

просмотр списка ранее обрабатывался в onCreateView и не равен нулю, а currentPos равен 3 (список stateNames на данный момент равен 7)

adapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_list_item_1, stateNames);
        listView.setAdapter(adapter);
        if (selectedState != null) {
            listView.setItemChecked(currentPos, true);
            adapter.notifyDataSetChanged();
        }

также здесь есть прослушиватель onItemClick для просмотра списка

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            if (selectedState == null || !customStates.get(position).getCustomStateID().equals(selectedState.getCustomStateID())) {
                selectedState = customStates.get(position);
            }else{
                listView.clearChoices();
                selectedState = null;
            }

            adapter.notifyDataSetChanged();
        }
    });

, поэтому, если ничего не выбрано или что-то еще выбрано, затем продолжите и выберите новый элемент, в противном случае отмените выделение и снимите выделение со всего.

Но когда я загружаю фрагмент, он имеетзначение выбрано, но не выделено, и когда я нажимаю второй раз, элемент не выбирается, но остается выделенным.

Кто-нибудь знает, чего мне не хватает, чтобы "обновить" выделение в ячейке?

Спасибо.

...