CustomCursorAdapter checkBox.setOnCheckedChangeListener

  • 4 Antworten
  • Neuester Beitrag
Diskutiere CustomCursorAdapter checkBox.setOnCheckedChangeListener im Android App Entwicklung im Bereich Betriebssysteme & Apps.
derjens

derjens

Ambitioniertes Mitglied
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:
M

Madlip

Gast
Vielleicht das ganze mal in der oncreate Methode ausführen.


Sent from my iPhone using Tapatalk
 
derjens

derjens

Ambitioniertes Mitglied
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
 
M

Madlip

Gast
Mit Null wäre ich sehr sehr vorsichtig ...


Sent from my iPhone using Tapatalk
 
derjens

derjens

Ambitioniertes Mitglied
Warum?