У меня есть кнопка-переключатель во фрагменте, инициализированном внутри класса адаптера, и она работает как кнопка списка избранного, которая добавляет продукт в базу данных Firebase, если на него нажимают, и удаляет его при повторном нажатии.
addToCart.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (customer.userId != null) {
mFirebaseDatabase = FirebaseDatabase.getInstance();
mCustomerRefernce = mFirebaseDatabase.getReference().child("Favorite").child(customer.userId);
cmObej = getItem(position);
if (isChecked) {
mCustomerRefernce.child(cmObej.getId()).setValue(true);
addToCart.setBackgroundDrawable(ContextCompat.getDrawable(getContext(), R.drawable.ic_filledstar_blue2_24dp));
} else {
mCustomerRefernce.child(cmObej.getId()).removeValue();
addToCart.setBackgroundDrawable(ContextCompat.getDrawable(getContext(), R.drawable.ic_star_border_blue2_24dp));
}
}else{
new AlertDialog.Builder(getContext())
.setTitle("Alert")
.setMessage("Can't add to the list, do you want to sign in?")
.setCancelable(true)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent i = new Intent(getContext(), Signin2.class);
getContext().startActivity(i); }
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}
}
});
Проблема в том, что всякий раз, когда он щелкает, новое действие инициализируется, как вы видите здесь
V/FA: Activity paused, time: 9574193
V/FA: onActivityCreated
V/FA: Activity resumed, time: 9574270
Как вы думаете, в чем проблема?