gpt4 book ai didi

android - 更改 recyclerView 项目背景 onClick?

转载 作者:行者123 更新时间:2023-12-05 00:09:59 26 4
gpt4 key购买 nike

当我在我的 recyclerView 中按下一个按钮时,我会这样做,这将改变它的背景颜色,所以它会被按下,但我不是很喜欢 android,所以我无法获得怎么做。

我已经尝试了一些在网上找到的指南,但其中大部分对我没有用,就像这个 guide按钮没有变色,只是白色。我会那样想 screen of my activity

这是我的 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);
}
}


}
});



}
}

实际上,如果我按下按钮,它会加载到上层 RecyclerView 不同的项目,比如如果“CICCIO”被按下,它将加载一些东西,如果按下另一个按钮,它将加载其他项目,并且如果我使用快速学习者答案,就会发生这种情况

Gif of activity that change items by pressing buttons

Here after using quick learner solution it's change color but not anymore the items

最佳答案

如果你想在回收站 View 中更改所选项目的颜色,试试这个

 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

}


}

而这个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();
}
}


}
});



}

关于android - 更改 recyclerView 项目背景 onClick?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50875775/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com