Я хочу, чтобы при нажатии на итемы в обзоре реселлера, менялся только фон выбранного клика на «set_checked» и фон другого элемента «cardview_light_background». В то же время только фон элемента должен быть «set_checked». Точно так же, как кнопка группы радио, которая в то же время только один элемент кнопки группы радиосвязи является выбранным или активным, а другие неактивны или отменяют выбор в ItemAdapter:
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Typeface;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import javax.security.auth.callback.Callback;
import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView;
public class ItemAdadpter extends RecyclerView.Adapter<ItemAdadpter.MyVeiwHolder> {
// List<Item> itemList;
Context mContext;
sender sender;
//List<Item> itemList;
ArrayList<Item> itemList = new ArrayList<Item>();
int a;
ArrayList<Item> mitem = new ArrayList<>();
public ItemAdadpter(ArrayList<Item> itemList, Context mContext, ir.aimi.beytoshohada.sender sender) {
this.itemList = itemList;
this.mContext = mContext;
this.sender = sender;
}
@NonNull
@Override
public MyVeiwHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View aView = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycller, parent, false);
return new MyVeiwHolder(aView);
}
@Override
public void onBindViewHolder(@NonNull final MyVeiwHolder holder, final int positionn) {
//boolean isSelected = false;
final Item aItem = itemList.get(positionn);
//isSelected = false;
//holder.aAvatar.setImageResource(aItem.getuAvatar());
// holder.abackgrond.setBackgroundResource(aItem.getuAvatar());
////////////////////////////
holder.number.setText(aItem.getPrice() + "");
holder.totaly_number.setText(aItem.getTotal_number() + "");
holder.title.setText(aItem.getTitle());
holder.summery.setText(aItem.getSummery());
holder.progressBar.setMax(aItem.getTotal_number());
holder.progressBar.setProgress(aItem.getPrice());
holder.progressBar.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
// holder.person.setText(aItem.getPerson());
holder.aItemm.setSelected(false);
Typeface atf = Typeface.createFromAsset(mContext.getAssets(), "font/KHANDEVANE.TTF");
holder. totaly_number.setTypeface(atf);
holder. number.setTypeface(atf);
farsisaz(holder.totaly_number);
farsisaz(holder.number);
holder.aItemm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sender.click(positionn);
clicable(positionn);
for (int j=0;j<itemList.size();j++) {
if (itemList.get(j).getSelect_own()==true ) {
Toast.makeText(mContext, ""+itemList.get(j).getSelect_own(), Toast.LENGTH_SHORT).show();
holder.aItemm.setBackgroundResource(R.drawable.set_checked);
notifyDataSetChanged();
} else {
notifyDataSetChanged();
holder.aItemm.setBackgroundResource(R.color.cardview_light_background);
}
}
/* if (!holder.aItemm. isSelected()) {
holder.aItemm.setBackgroundResource(R.drawable.set_checked);
holder.aItemm.setSelected(true);
} else {
holder.aItemm.setSelected(false);
holder.aItemm.setBackgroundResource(R.color.cardview_light_background);
}
//itemList.get(position).setUboolean(true);
//Toast.makeText(mContext, "Item:"+aItem.isUboolean(), Toast.LENGTH_SHORT).show();
*/ }
});
}
@Override
public int getItemCount() {
return itemList.size();
}
public class MyVeiwHolder extends RecyclerView.ViewHolder {
// public ImageView aAvatar;
//public boolean IsSelected= false;
public TextView title, summery, totaly_number, number, person;
public LinearLayout aItemm;
public ProgressBar progressBar;
public MyVeiwHolder(@NonNull View itemView) {
super(itemView);
title = itemView.findViewById(R.id.txt_title);
summery = itemView.findViewById(R.id.txt_summery);
totaly_number = itemView.findViewById(R.id.txt_totaly_number);
number = itemView.findViewById(R.id.txt_number);
person = itemView.findViewById(R.id.txt_person);
//aAvatar=itemView.findViewById(R.id.img_avatar);
//boolean IsSelected= false;
aItemm = itemView.findViewById(R.id.item_layout);
aItemm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
progressBar = itemView.findViewById(R.id.progressBar);
}
}
String formatnumber(double n) {
DecimalFormat decimalFormat = new DecimalFormat("#,###");
return decimalFormat.format(n);
}
void farsisaz(TextView view) {
String Text = view.getText().toString();
if (!TextUtils.isEmpty(Text)) {
String textchanger = formatnumber(Double.valueOf(new BigDecimal(Text.replaceAll(",", "")).toString()));
String check = farsi_number_change.changefarsi(textchanger);
view.setText(check);
}
}
public void clicable(int position){
for (int ii=0;ii<itemList.size();ii++){
if (ii==position){
if (! itemList.get(ii).getSelect_own()==true){
itemList.get(ii).setSelect_own(true);
Toast.makeText(mContext, ""+position+" اول "+ii, Toast.LENGTH_SHORT).show();
notifyDataSetChanged();
}
else {
itemList.get(ii).setSelect_own(false);
notifyDataSetChanged();
}break;}
else {
itemList.get(ii).setSelect_own(false);
notifyDataSetChanged();
Toast.makeText(mContext, ""+position+" "+ii, Toast.LENGTH_SHORT).show();
}
}
}
}
это мой класс элементов:
package ir.aimi.beytoshohada;
public class Item {
public Item(String id, int price, String title, String summery, int total_number) {
this.id = id;
this.price = price;
this.title = title;
this.summery = summery;
this.total_number = total_number;
}
public String getId() {
return id;
}
public int getPrice() {
return price;
}
public String getTitle() {
return title;
}
public String getSummery() {
return summery;
}
public int getTotal_number() {
return total_number;
}
public boolean getSelect_own() {
return select_own;
}
private String id;
private int price;
private String title;
private String summery;
private int total_number;
private boolean select_own;
public void setSelect_own(boolean select_own) {
this.select_own = select_own;
}
}
число Recycler Просмотр элементов неизвестен, поскольку он получен с сервера. этот код не работает. что ваше предложение для этого