onCheckedChanged wird automatisch aufgerufen

Ich habe einen Schalter in einer Recyclingübersicht und Daten werden in der Recyclingübersicht angezeigt, nachdem Daten aus der Datenbank abgerufen wurden. Wenn die Recyclingübersicht geöffnet ist, lese ich DB und wenn ein Feld in DB "Y" ist, aktiviere ich den Schalter oder deaktiviere ich den Schalter. Jetzt ist das Problem damit verbunden, dass der onCheckedchanged-Listener auch aufgerufen wird. Ich möchte, dass der onCheckedChanged nur aufgerufen wird, wenn der Benutzer den Schalter manuell einstellt.

Beim Öffnen wird die unten stehende Recyclingübersicht ausgeführt:

holder.enabledisable.setChecked(messengerRecord.get_is_valid().equalsIgnoreCase("Y"));

ViewHolder Klasse:

public class viewHolder extends RecyclerView.ViewHolder implements CompoundButton.OnCheckedChangeListener{
public SwitchCompat enabledisable;
 public viewHolder(View v) {
            enabledisable = (SwitchCompat) v.findViewById(R.id.enabledisable);
            enabledisable.setOnCheckedChangeListener(this);
...................................
...................................

OncheckedChanged-Methode, die aufgerufen wird, wenn die recyclerView gerade geöffnet wird:

@Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            Log.v("ranjith","called oncheckedchanged");
            MessengerRecord rec;
            rec = dbHelper.getRecord(descview.getText().toString());
            switch (buttonView.getId()) {
                case R.id.enabledisable:
                    if (isChecked) {
                        rec.set_is_valid("Y");
                        dbHelper.updateRecord(rec);
                     }
}

In Layoutdatei:

<android.support.v7.widget.SwitchCompat
    android:layout_marginRight="16dp"
    android:layout_marginEnd="16dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:focusable="false"
    android:id="@+id/enabledisable"
    android:layout_alignRight="@+id/textview_to"
    android:layout_alignEnd="@+id/textview_to"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"/>

Antworten auf die Frage(12)

Ihre Antwort auf die Frage