Custom ListView - ImageView verschwindet bei Scrollen

1

12nico07

Neues Mitglied
0
Hi,
ich habe mir eine ListView erstellt. Jedes Item besitzt ein ImageView (= Profilbild), und 2 TextViews (= Name & Telefonnummer). Diese Daten kommen aus einem Objekt "Contact". Ausserdem gibt es aber noch ein ImageView. Dieses ImageView soll nur angezeigt werden wenn der Kontakt ausgewählt wurde. (Klick auf das Item = Das ImageView ist zu sehen. Nochmal klick auf das Item = ImageView ist nicht mehr zu sehen....)

Ich habe das ImageView in der Layout xml also mit dem Bild belegt und die Sichtbarkeit auf unsichtbar gesetzt. Klicke ich jetzt auf ein Item wird das ImageView angezeigt, klicke ich nochmal drauf wird es wieder unsichtbar usw.

Wenn ich jetzt aber ein Item anklicke (ImageView wird sichtbar) und dann runter scrolle und wieder hoch, sehe ich das ImageView nicht mehr.

Edit() {
Habe jetzt versucht einfach nur den Hintergrund zu färben aber sobald ich hin und her scrolle sieht er wieder normal aus.
}




Hier mal der Code:

Das ImageView im Layout.xml
Code:
    <ImageView
        android:id="@+id/item_imgV_checked"
        android:layout_width="@dimen/groesse_ImgView_2_item_cLst"
        android:layout_height="@dimen/groesse_ImgView_2_item_cLst"
        android:maxHeight="@dimen/groesse_ImgView_2_item_cLst"
        android:maxWidth="@dimen/groesse_ImgView_2_item_cLst"
        android:minHeight="@dimen/groesse_ImgView_2_item_cLst"
        android:minWidth="@dimen/groesse_ImgView_2_item_cLst"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_marginTop="@dimen/ui_spacing_full"
        android:visibility="invisible"
        android:src="@drawable/checked"
        />


Hier wird das ImageView sichtbar/unsichtbar gesetzt.
Code:
 ListView myLstView;
            myLstView = (ListView) v.findViewById(R.id.setupC_lstView_Kontakte);
            ContactAdapter adapter = new ContactAdapter(getActivity(), kontakt_list);
            myLstView.setAdapter(adapter);
            
            myLstView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                    ImageView img_checked = (ImageView) view.findViewById(R.id.item_imgV_checked);


                    if (myInterface.addContact(kontakt_list.get(position))) {
                        //added
                        //img_checked.setImageResource(R.drawable.checked);
                        img_checked.setVisibility(View.VISIBLE);
                    } else {
                        //delated
                       img_checked.setVisibility(View.INVISIBLE);
                        //img_checked.setImageBitmap(null);
                    }


                }
            });


Und hier der Adapter:
Code:
[B]public class ContactAdapter extends ArrayAdapter<Contact> {

    private Context context;
    private ArrayList<Contact> allContacts;

    //Konstruktor
    public ContactAdapter(Context c, ArrayList<Contact> lst_contacts) {
        super(c, R.layout.view_import_contact_item, lst_contacts);
        this.context = c;
        this.allContacts = lst_contacts;
    }

    //erstellt die einzelnen Items und befüllt sie.
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View row = inflater.inflate(R.layout.view_import_contact_item, parent, false);
        ImageView item_pic = (ImageView) row.findViewById(R.id.item_imgV_bild);
        TextView item_name = (TextView) row.findViewById(R.id.item_txtV_name);
        TextView item_nummer = (TextView) row.findViewById(R.id.item_txtV_nummer);


        String str = "Tel.:" + allContacts.get(position).getPhoneNumber();

        item_pic.setImageBitmap(allContacts.get(position).getPic());
        item_name.setText(allContacts.get(position).getFull_Name());
        item_nummer.setText(str);


        return row;
    }
}

[/B]
 
Zuletzt bearbeitet:

Ähnliche Themen

A
Antworten
10
Aufrufe
1.021
swa00
swa00
D
Antworten
17
Aufrufe
408
datNeMo
D
M
Antworten
3
Aufrufe
168
moin
M
Zurück
Oben Unten