Listview ArrayAdapter setItemChecked不会突出显示所选单元格,并且重新选择单元格不会“取消突出显示”

时间:2018-11-20 04:39:47

标签: android listview android-arrayadapter

早上好,我有一个列表视图,我想使用ArrayAdapter填充字符串值,除了开始启动时我已经完成了所有这些工作,我需要选择“当前选定的项目”并突出显示

listview先前在onCreateView中处理,并且不为null,并且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();
        }
    });

因此,如果未选择任何内容或未选择其他任何内容,请继续并选择新项目,否则清除选择并取消突出显示所有内容

但是,当我加载片段时,它具有选定的值但未突出显示,而当我第二次单击时,该项目未被选择但仍突出显示。

有人知道我缺少什么来“刷新”单元格上的突出显示吗?

谢谢。

0 个答案:

没有答案