Как реализовать множественный выбор переработчика? - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь реализовать RecyclerView, который поддерживает Multi Selection в элементах, я видел другие вопросы по этой теме, но главное отличие в том, что мне нужно иметь возможность выбирать вне Адаптера.
Например, скажем, у меня есть диалог с именем SelectionDialog, в этом диалоговом окне отображаются некоторые параметры выбора, такие как «Выбрать все», поэтому, если я щелкну по нему, у меня будет возможность выбрать все элементы моего переработчика, и эти элементы должны что-то изменить, чтобы позволить пользователю знать, какие из них выбраны, в моем случае я решил (используя MaterialCardView) добавить небольшую цветовую границу к элементу, чтобы различать guish, если он выбран или нет.
Я могу выбрать все задачи с методом publi c в адаптере (измените их логическое свойство isSelected на true), однако я не могу понять, как добавить эту границу в ViewHolder соответствующего элемента, главным образом потому, что у меня нет доступа к нему
Вот мой код:

//SelectDialog    
AllB.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                listadapter.SelectAll();
                Touched = true;
                dismiss();
            }
        });

//ListAdapter    
public void SelectAll()    
    {    
        for(int i = 0; i < mList.size(); i++)    
            ListItem item = mList.get(i);   
            item.setSelected(true);
            //I should be able to add the border to the item here     
        }   
    }   

1 Ответ

0 голосов
/ 06 февраля 2020

Вызов notifyDataSetChanged(); // ListAdapter

public void SelectAll()    
    {    
        for(int i = 0; i < mList.size(); i++)    {
            ListItem item = mList.get(i);   
            item.setSelected(true);
            //I should be able to add the border to the item here     
        }   
notifyDataSetChanged();
    } 

в вашем onBindViewHolder ...

 if(item.IsSelected()){
    //Change the View border here
    }else{
    //Default View Background
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...