Igo*_*yuk 2 android android-recyclerview
当我按下我的按钮时,我会这样做recyclerView,这会改变它的背景颜色,这样按下的按钮就会可见,但我不太喜欢android,所以我不知道如何做到这一点。
我尝试过在网上找到的一些指南,但其中大多数对我不起作用,就像在本指南中按钮没有颜色而只是白色。我会做一些类似 我的活动屏幕的事情
这是我的recyclerView适配器代码:
public class RecyclerViewMenu extends RecyclerView.Adapter<RecyclerViewMenu.MenuViewHolder> {
private ArrayList<MenuConstructor> menuConstructors;
private OnItemClickListener onItemClickListener;
public interface OnItemClickListener {
void onItemClick(int position);
}
public void setOnItemClickListener(OnItemClickListener listener){
onItemClickListener = listener;
}
@NonNull
@Override
public MenuViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.menucard,parent,false);
return new MenuViewHolder(v, onItemClickListener);
}
RecyclerViewMenu(ArrayList<MenuConstructor> menuList){
menuConstructors = menuList;
}
@Override
public void onBindViewHolder(@NonNull final MenuViewHolder holder, final int position) {
MenuConstructor currentItem = menuConstructors.get(position);
holder.textView.setText(currentItem.getDesk());
holder.itemView.setBackgroundColor(Color.parseColor(currentItem.getSfondoColor()));
holder.textView.setTextColor(Color.parseColor(currentItem.getFontColor()));
}
@Override
public int getItemCount() {
return menuConstructors.size();
}
public static class MenuViewHolder extends RecyclerView.ViewHolder {
public TextView textView;
MenuViewHolder(View itemView, final OnItemClickListener listener) {
super(itemView);
textView = itemView.findViewById(R.id.ButtonName);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(listener != null){
int position = getAdapterPosition();
if (position != RecyclerView.NO_POSITION){
listener.onItemClick(position);
}
}
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
}
实际上,如果我按下按钮,它会加载到向上的RecyclerView不同项目上,例如如果按下“CICCIO”,它将加载一些内容,如果按下另一个按钮,它将加载其他项目,如果我使用快速学习者答案,就会发生这种情况
如果您想更改回收器视图中所选项目的颜色,请尝试此操作
public class AdapterClass extends RecyclerView.Adapter<AdapterClass.ViewHolder> {
private int selected_position = -1;
@Override
public void onBindViewHolder(PlacesLocationAdapter.ViewHolder holder, final int position) {
if (selected_position == position) {
// do your stuff here like
//Change selected item background color
} else {
// do your stuff here like
//Change unselected item background color
}
// rest of the code here
}
}
Run Code Online (Sandbox Code Playgroud)
这个MenuViewHolder类应该是这样的
public static class MenuViewHolder extends RecyclerView.ViewHolder {
public TextView textView;
MenuViewHolder(View itemView, final OnItemClickListener listener) {
super(itemView);
textView = itemView.findViewById(R.id.ButtonName);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(listener != null){
int position = getAdapterPosition();
if (position != RecyclerView.NO_POSITION){
listener.onItemClick(position);
selected_position = position;
notifyDataSetChanged();
}
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8571 次 |
| 最近记录: |