Обновить пользовательскую строку ListView в выбранном действии ContextMenu

У меня есть пользовательский ListView, включая пользовательский row_layout.
После долгого клика вы получаете различные варианты из contextmenu. В зависимости от того, какая опция выбрана пользователем, я хочу добавить изображение/значок в выбранную строку, чтобы отметить ее.

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

Спасибо заранее.

1 ответ

  1. Неважно, что я сам нашел решение. Я добавил логическую переменную в класс ListItem и ImageView в класс list_row_layout, а также ImageView в класс ViewHolder в классе CustomAdapter. Таким образом, при щелчке contextItem логический атрибут имеет значение true для listItem, который был нажат.

    пример кода:

    @Override
    public boolean onContextItemSelected(MenuItem item) {
    
            AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
    
            int itemPosition = info.position;
    
            switch (item.getItemId()) {
                case R.id.contextItem1:
    
                    listViewItems.get(itemPosition).setMarkerAttribute(true);
                    listView.setAdapter(new MyCustomListAdapter(context, listViewItems));
    
                    return true;
                case R.id.contextItem2:
    
    //do sth
                    return true;
                case R.id.contextItem3:
    //do sth
                    return true;
                default:
                    return super.onContextItemSelected(item);
            }
        }
    

    Надеюсь, это было полезно кому-то, потому что много примеров только покрывают удаление элемента …