我正在使用android recyclerview显示项目列表,可以通过MultipleSelect界面选择多个项目,我需要显示之前选择/选中的项目在RecyclerViewer的编辑模式下设置为选中。
我无法在我的代码中获得这个业务逻辑。有人能帮我吗,我是android开发的新手。
我从服务器以arrayList格式获取previoulsy选定的项目:
InterestsList : Ex:["Antiques-Collecting","Arts-Crafts","Boating"]
该兴趣列表项目需要在Recyclerview中设置为选中/选定,用户可以再次修改项目,需要选择更多或从以前选择的项目中删除,并保存数据。
我该如何为此编写简单的逻辑呢?
strings ArrayList具有回收器项目列表数据,InterestsList是选中的项目列表数据。
适配器校准:
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.tvInterestName.setText(interests.get(position).getInterest().toString());
interestList = model.getInterests(); // PREVIOUSLY SELECTED ITEMS
//in some cases, it will prevent unwanted situations
holder.checkBox.setOnCheckedChangeListener(null);
//if true, your checkbox will be selected, else unselected
holder.checkBox.setChecked(interests.get(position).isSelected());
holder.cell.setOnClickListener(v ->
{
holder.checkBox.performClick();
});
if (interests.get(position).isSelected()) {
holder.checkBox.setChecked(true);
} else {
holder.checkBox.setChecked(false);
}
holder.checkBox.setOnCheckedChangeListener((buttonView, isChecked) ->
{
guestListener.OnMultipleGuestListener(position, isChecked);
});
}
在我的活动类中使用的接口侦听器下面选择多个项目:
@Override
public void OnMultipleGuestListener(int position, boolean isChecked) {
interestFinalList.get(position).setSelected(isChecked);
interestsAdapter.notifyDataSetChanged();
}
屏幕拍摄所需的更改,格式如下:
示例:[“古董收藏”、“工艺品”、“划船”]当我进入此屏幕时,需要将项目设置为选中/选中。
从您的模型中获取一个选定的结果并选中是否等于持有者文本名称。如果两者都相等,则复选框为true。例如:
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.tvInterestName.setText(interests.get(position).getInterest().toString());
//in some cases, it will prevent unwanted situations
holder.checkBox.setOnCheckedChangeListener(null);
//if true, your checkbox will be selected, else unselected
for(int i=0;i<model.getInterests().size();i++)
if(model.getInterests().get(i).equals(interests.get(position).getInterest())){
holder.checkBox.setChecked(true);
}
}
像这样修改代码。希望它能帮助你。
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.tvInterestName.setText(interests.get(position).getInterest().toString());
//in some cases, it will prevent unwanted situations
holder.checkBox.setOnCheckedChangeListener(null);
//if true, your checkbox will be selected, else unselected
holder.checkBox.setChecked(interests.get(position).isSelected());
holder.cell.setOnClickListener(v ->
{
holder.checkBox.performClick();
});
holder.checkBox.setOnCheckedChangeListener((buttonView, isChecked) ->
{
interests.get(position).setSelected(isChecked);
guestListener.OnMultipleGuestListener(position, isChecked);
});
}
在您的列表中维护一个布尔变量,当选中复选框时取消选中,然后相应地更改布尔变量的值,如true和false,然后通知您的列表。
and inside your onbind view holder check boolean variable true or false if true then show selected otherwise unselected.
我有一个Windows Phone应用程序,其中一个ListPicker绑定到一个ObservableCollection和一个选定的项目: 在ViewModel中: 当我试图从按钮处理程序的列表中删除所选项目时,我得到一个InvalidOperationException(SelectedItem必须始终设置为有效值): 我希望将SseltedCon条件设置为null(这实际上是列表中的第一个项
我正在使用新的android。支持设计小装置。来自支持库的BottomNavigationView。如何从代码中设置当前选择?我意识到,在旋转屏幕后,选择被更改回第一项。当然,如果有人能告诉我如何在“暂停”功能中“保存”底部导航视图的当前状态,以及如何在“恢复”功能中恢复它,这也会有所帮助。 谢谢
问题内容: 是否可以使用以下“类型”代码在下拉框中设置所选项目? 该数据库有一个月..我想在编辑页面上允许他们选择这个月..但是要用当前设置预先填写吗? 问题答案: 您需要设置正确选项标签的selected属性: 您的PHP如下所示: 我通常发现创建值数组并循环遍历以创建下拉列表比较整洁。
我有选择权。如何设置为var选择自动选择? 例如,我手动选择选项1,它自动 <代码> 编辑我发现了。
我正在使用接缝2.2.2。JBoss AS 5上的最终版本。我正在开发一个多页向导。在我的第一页上,用户将能够在文本区域上输入由新行分隔的多个业务名称。 提交页面后,系统解析输入值并将其拆分为字符串列表 然后要求用户从有效企业名称列表中选择进行注册 selectedbusinessName为String类型,而businessNameChoices为List类型 在提交页面时,作为企业名称提交的内
问题内容: 我想设置一个先前选择的要在页面加载时显示的选项。我用以下代码尝试了它: 与 但这是行不通的。有任何想法吗? 问题答案: 这绝对应该工作。确保已将代码放入: