android - 如何在 RecyclerView 中选择和取消选择项目?如何仅在回收站视图中突出显示所选项目?
问题描述
@Override
public void onBindViewHolder(final mainscreenspecializationadap.MyViewHolder holder, final int positionz) {
this.position = holder.getAdapterPosition();
final specializationpojo album = albumList.get(holder.getAdapterPosition());
holder.txtspecs.setText(album.getSplztnname());
holder.imgspecs.setImageResource(album.getIcon());
holder.linelayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
row_index=positionz;
album.setOpened(!album.isOpened());
notifyDataSetChanged();
}
});
if(positionz==row_index){
holder.imageView.setBackground(mContext.getResources().getDrawable(R.drawable.white_circle_background));
holder.txtspecs.setSelected(true);
if (type==1)
{
onClick.onSelected(row_index,album.isOpened(),album.isClosed());
}
else if(type==2)
{ onClick.onSpecialisationSelected(album.getSplzcode(),album.getCount());
}
}
else
{
holder.txtspecs.setSelected(false);
holder.imageView.setBackground(mContext.getResources().getDrawable(R.drawable.green_background));
}
}
我有一个回收站视图,我只需要选择一个项目,所以在此基础上,我必须显示一个子列表项目。
现在的问题是当我取消选择该项目时,下面的子列表项目应该被隐藏。
请给我一个答案,我会感谢你的答案。
解决方案
这是满足您要求的解决方案
public class AdapterClass extends RecyclerView.Adapter<AdapterClass.ViewHolder> {
private int selected_position = -1;
@Override
public void onBindViewHolder(AdapterClass.ViewHolder holder, final int position) {
if (selected_position == position) {
// do your stuff here like
//Change selected item background color and Show sub item views
} else {
// do your stuff here like
//Change unselected item background color and Hide sub item views
}
// rest of the code here
holder.linelayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(selected_position==position){
selected_position=-1;
notifyDataSetChanged();
return;
}
selected_position = position;
notifyDataSetChanged();
}
});
//rest of the code here
}
}
推荐阅读
- java - Only first test in class failed when running multiple classes
- c# - How can I get as much as close to 0 on float?
- gnuplot - 在 Gnuplot 中使用调色板进行绘图时,将低于某个截止点的点的颜色设置为灰色
- r - 对于 n=1,2,3,... 在 R 中生成素数的 P=n^2-2+41 的证明
- html - 使用卡片和 for 循环引导
- python - 为什么 numpy 不能删除这个无用的维度?
- javascript - 我想通过从对象数组中获取选择性元素来创建动态路由 --- TYPESCRIPT
- angular - ASP.NET Core 3.1 向 MVC 应用程序添加角度
- c# - 无法将 System.Web.Routing 添加到我的单元测试
- javascript - ReactJS 网页无法正确显示