我想在recyclerview
中突出显示所选项目。我可以计算所选项目的数量。
我希望突出显示为
.....
我试过这段代码。
recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(this, recyclerView, new RecyclerItemClickListener.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
if (isMultiSelect) {
multi_select(position);
selectedPositon = position;
} else{
Toast.makeText(getApplicationContext(), "Details Page", Toast.LENGTH_SHORT).show();
}
if (selectedPositon == position) {
view.setBackgroundColor(Color.parseColor("#e2a49e"));
} else {
view.setBackgroundColor(Color.parseColor("#f5f5f5"));
}
}
@Override
public void onItemLongClick(View view, int position) {
if (!isMultiSelect) {
selected_list = new ArrayList<AlertListItem>();
isMultiSelect = true;
selectedPositon = position;
if (mActionMode == null) {
mActionMode = startActionMode(mActionModeCallback);
}
}
if (selectedPositon == position) {
view.setBackgroundColor(Color.parseColor("#e2a49e"));
} else {
view.setBackgroundColor(Color.parseColor("#f5f5f5"));
}
multi_select(position);
}
}));
}
有人可以帮助我。
答案 0 :(得分:0)
if (btn.getBackground().getConstantState().equals(itemView.getResources().getDrawable(R.drawable.understand_clicked).getConstantState())) {
btn.setBackground(itemView.getResources().getDrawable(R.drawable.understand_not_clicked));
} else {
btn.setBackground(itemView.getResources().getDrawable(R.drawable.understand_clicked));
}
在View holder类中的自定义recyclerviewadapter中执行此代码。使用 getConstantState 获取当前图像状态。您还可以更改所选原始颜色。
答案 1 :(得分:0)
您可以使用以下代码
public void onBindViewHolder(final ViewHolder holder, final int position) {
holder.textView.setText(array[position]);
holder.row_linearlayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
index=position;
notifyDataSetChanged();
}
});
if(index==position){
holder.layout.setBackgroundColor(Color.parseColor("#ff8569"));
holder.textView.setTextColor(Color.parseColor("#ffffff"));
}
else
{
holder.layout.setBackgroundColor(Color.parseColor("#ffffff"));
holder.textView.setTextColor(Color.parseColor("#000000"));
}
}
HolderClass
public class ViewHolder extends RecyclerView.ViewHolder {
private TextView textView;
LinearLayout layout;
RecyclerView recyclerView;
public ViewHolder(final View itemView) {
super(itemView);
textView=(TextView)itemView.findViewById(R.id.textView1);
layout=(LinearLayout)itemView.findViewById(R.id.layouot_linear);
recyclerView=(RecyclerView)itemView.findViewById(R.id.recycler);
}
}