Реакция переключателя очень медленная
У меня есть RecyclerView с текстом и радио-кнопка, как это:
Когда я выбираю любой из переключателей, он получает идентификатор. Моя проблема в том, что когда я выбираю переключатель, он реагирует очень медленно (т. Е. Красный цвет на переключателе появляется через 2-3 секунды после нажатия переключателя).
Вот код моей формы класса адаптера, где я обрабатываю приемник щелчка переключателя
public class BusinessTypeAdapter extends RecyclerView.Adapter<BusinessTypeAdapter.MyViewHolder> {
private List<BusinessTypeModel> moviesList;
private int lastSelectedPosition = -1;
private Context context;
private OnItemClick mCallback;
public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView title,id;
RadioButton radioButton;
public MyViewHolder(View view) {
super(view);
title = (TextView) view.findViewById(R.id.businessname);
id = (TextView) view.findViewById(R.id.id);
radioButton = (RadioButton) view.findViewById(R.id.select);
//
// radioButton.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// final BusinessTypeModel movie = new BusinessTypeModel();
//// boolean isChecked = radioButton.isChecked();
//// if (isChecked) {
//// String clickValue = movie.getId();
//
//// Log.d("list", moviesList.toString());
//
// lastSelectedPosition = getAdapterPosition();
// notifyDataSetChanged();
//// Toast.makeText(BusinessTypeAdapter.this.context,
//// "selected offer is " + clickValue,
//// Toast.LENGTH_LONG).show();
// }
//
//// }
// });
}
}
public BusinessTypeAdapter(List<BusinessTypeModel> moviesList,Context ctx,OnItemClick listener) {
this.moviesList = moviesList;
context = ctx;
this.mCallback = listener;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.businestypelistitem, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(final MyViewHolder holder, int position) {
final BusinessTypeModel movie = moviesList.get(position);
holder.title.setText(movie.getTitle());
holder.id.setText(movie.getId());
holder.radioButton.setChecked(lastSelectedPosition == position);
boolean isChecked = holder.radioButton.isChecked();
if(isChecked) {
String clickValue = movie.getId();
mCallback.onClick(clickValue);
Toast.makeText(BusinessTypeAdapter.this.context,
"selected offer is holder " + clickValue,
Toast.LENGTH_LONG).show();
}
}
@Override
public int getItemCount() {
return moviesList.size();
}
public interface OnItemClick {
void onClick (String value);
}
}
Как решить эту проблему.
Если кто-то хочет узнать больше информации, пожалуйста, дайте мне знать.