CustomCursorAdapter checkBox.setOnCheckedChangeListener

derjens

derjens

Ambitioniertes Mitglied
5
Habe nach langem rumbastel einen CustomCursorAdapter gebaut
der mir aus einer Datenbank eine Todo Liste erstellt und den Status
einer Checkbox setzt. Funktioniert auch ganz gut :biggrin:

bis auf den Umstand das mir das initiale setzen der Checkbox mit
checkBox.setChecked(true/false) ein onCheckedChanged auslöst.
Wie kann ich das verhindern ??

Gruß
derJens

Hier noch der Code von meiner bindView()
Code:
@Override
    public void bindView(View v, final Context context, Cursor c) {
        
        int idCol = c.getColumnIndex(TodoTable.Columns._ID);
        final int id = c.getInt(idCol);
        
        int nameCol = c.getColumnIndex(TodoTable.Columns.TODO);
        String name = c.getString(nameCol);
        
        int statusCol = c.getColumnIndex(TodoTable.Columns.STATUS);
        int status = c.getInt(statusCol);
        
        TextView todo = (TextView) v.findViewById(R.id.textView_tabprojekttodolistitem_todo);
        todo.setText(name);
        
        CheckBox checkBox = (CheckBox) v.findViewById(R.id.checkBox_tabprojekttodolistitem_status);
        
        if( status == 1) {
            checkBox.setChecked(true);
        } else {
            checkBox.setChecked(false);
        }
        
        checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                
                if (isChecked) {
                    
                    //nur zum testen
                    CharSequence text = id + " checked";
                    Toast.makeText(context, text , Toast.LENGTH_SHORT).show();
                    
                } else {

                    //nur zum testen                    
                    CharSequence text = id  + " unchecked";
                    Toast.makeText(context, text , Toast.LENGTH_SHORT).show();

                }
            }
        });
        
    }
 
Zuletzt bearbeitet:
Vielleicht das ganze mal in der oncreate Methode ausführen.


Sent from my iPhone using Tapatalk
 
Schönen guten.

Hab mein Problem in den griff bekommen.

ein einfaches

Code:
checkBox.setOnCheckedChangeListener(null);
vor der if Anweisung zum setzen der CheckBox hat das Problem behoben.

Gruß
derJens
 
Mit Null wäre ich sehr sehr vorsichtig ...


Sent from my iPhone using Tapatalk
 
Warum?
 
Zurück
Oben Unten