В настоящее время я работаю над приложением для электронной коммерции для Android.В моем обзоре переработчиков 13 продуктов динамически заполняются из базы данных.Когда я нажимаю первую кнопку в списке, она также меняет текст кнопки 11-й кнопки списка (я кодировал, чтобы изменить текст кнопки с Добавить на Удалить при нажатии кнопки).Аналогично нажатию 2-й кнопки изменяется текст 12-й кнопки просмотра.В журнале я заметил, что обе кнопки имеют одинаковое значение памяти.Что-то я делаю не так?
Вот журнал, сгенерированный за 3 разных нажатия кнопок (1-я, 11-я и 2-я кнопки):
android.support.v7.widget.AppCompatButton{9b877fd VFED..C.. ...P.... 740,120-1010,240 #7f090024 app:id/button}
android.support.v7.widget.AppCompatButton{9b877fd VFED..C.. ...P.... 740,120-1010,240 #7f090024 app:id/button}
android.support.v7.widget.AppCompatButton{b7dcb1b VFED..C.. ...P.... 740,120-1010,240 #7f090024 app:id/button}
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {
Glide.with(mContext)
.asBitmap()
.load(productsList.get(position).getImage())
.into(holder.imageView);
holder.itemname.setText(productsList.get(position).getName());
holder.itemprice.setText(productsList.get(position).getPrice());
holder.itemprice_g.setText(productsList.get(position).getPrice_g());
holder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position1 = holder.getAdapterPosition();
if(!productsList.get(position1).isAddedTocart())
{
productsList.get(position1).setAddedTocart(true);
String x = productsList.get(position1).getName().toString();
Log.i("log",""+holder.button);
holder.button.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
holder.button.setPadding(0,0,0,0);
holder.button.setText("Remove");
((AddorRemoveCallbacks)mContext).onAddProduct();
}
else
{
productsList.get(position1).setAddedTocart(false);
holder.button.setText("Add");
holder.button.setPadding(12,0,0,0);
holder.button.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_shopping_cart_black_24dp, 0, 0, 0);
((AddorRemoveCallbacks)mContext).onRemoveProduct();
}
}
});
}