ListView auf aktuellen Eintrag zugreifen, aber wie ?

  • Hallo zusammen, ich habe eine ListView, die neben den Adressen in der Liste eine Checkbox anzeigt.
    Beim Click auf die Checkbox soll ein wert im entsprechenden Datensatz gesetzt werden.
    Wie komme ich aber an die ID dieses Satzes?
    Ich steh grad wieder aufm Schlauch ;(


    die ListView entsteht so:
    listView.setAdapter(new CustomAdapterAdressen(this, adressList));



    der CustomAdapter hat ne Liste Adressen:
    CustomAdapterAdressen(Context context, List<Adressen> adressList)



    in der
    public View getView(final int position, View convertView, ViewGroup parent) ...




    holder.favorit = (CheckBox)view.findViewById(R.id.checkbox_adressfavorit);
    holder.name = (TextView)view.findViewById(R.id.name);


    für die checkbox gibts dann den ClickListener :
    holder.favorit.setOnClickListener( new View.OnClickListener() {



    darin möchte ich auf die Id des datensatzes zugreifen um favorit auf true oder false zu setzen.


    Woher bekomme ich die id ??


    Mit
    String name = adresse.getName();



    krieg ich nie den ausgewählten Datensatz , sondern sonstwas











  • Wie bereits erwähnt merk dir alles bei deinem Objekt.


    Sprich du hast eine Adresse und du hast eine Checkbox. So jetzt überleg mal kurz wo du dir den State überall merken musst und denk dran du kannst deiner Checkbox auch einen Tag setzen ;)



    Java
    holder.checkBox.setChecked(adresse.isFavorit());
    holder.checkBox.setTag(adresse);


    In deinem onClickListener kannst du direkt darauf zugreifen ;)


    Java
    holder.checkBox.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        CheckBox checkBox = (CheckBox)view;
                        Adresse adresse = (Adresse)checkBox.getTag();
                        adresse.setFavorit(checkBox.isChecked());
                    }
                });
  • Hallo zusammen, das mit dem Zugriff auf den aktuellen Satz funktioniert jetzt super.

    Java
    CheckBox checkBox = (CheckBox)v;
                           Adresse adresse = (Adresse)checkBox.getTag();
                           adresse.setFavorite(checkBox.isChecked());
                          String id =  String.valueOf(adresse.getID());
                          boolean status = checkBox.isChecked();
                           
                         updateAdresseFavorit(id, status);



    in values steht beim Durchsteppen : favorite=true

    warum ist dann beim neuen Laden der Liste
    holder.favorit.setChecked(adresse.isFavorite());


    false?


    wo ist mein Denkfehler?

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!