ImageButton bei Items für ListView einfügen

D

DrLiightninG

Neues Mitglied
1
Hallo zusammen,
ich habe jetzt meine ListView mit den Daten aus der MySQL Datenbank erfolgreich in der App anzeigen lassen.
Wenn ich jedoch versuche, ein Item auszuwählen, passiert nichts.

Hier wird der Listener gesetzt:
Code:
partyList = (ListView) rootView.findViewById(R.id.listView);
                partyList.setClickable(true);
                partyAdapter = new PartyAdapter(getActivity(),R.layout.list_item_new);
                partyList.setAdapter(partyAdapter);

                partyList.setOnItemClickListener(new OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position,
                                            long id) {

                        Toast.makeText(getActivity().getApplicationContext(), "Clicked",
                                Toast.LENGTH_SHORT).show();
                    }
                });

So sehen die verschiedenen Items in der ListView aus:
http://img5.fotos-hochladen.net/uploads/listitemb7yotngl61.png

Wo könnte der Fehler liegen?

Gruß
Jan

PS:
Wenn wir schon mal beim Anklicken von Items in ner ListView sind, hätte ich noch folgende Frage:
Wie kann ich in einer ListView einen ImageButton anklicken? Also wo kann ich die Aktion (den Code) dazu schreiben? Es muss ja irgendwie herausgefunden werden, welcher ImageButton von den vielen ListItems angegklickt wurde.
 
Zuletzt bearbeitet:
Hallo versuche es mal so:
Code:
     partyList = (ListView) findViewById(R.id.listView);
                partyAdapter = new PartyAdapter(getActivity(),R.layout.list_item_new);
               
                partyList.setAdapter(partyAdapter);
                partyList.setItemsCanFocus(true);
                partyList.setOnItemClickListener(new OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position,
                                            long id) {

                        Toast.makeText(getActivity().getApplicationContext(), "Clicked",
                                Toast.LENGTH_SHORT).show();
                    }
                });

Wenn das nicht funktoniert, dann bitte einmal dein PartyAdapter hier einfügen
 
123thomas schrieb:
Hallo versuche es mal so:
Code:
     partyList = (ListView) findViewById(R.id.listView);
                partyAdapter = new PartyAdapter(getActivity(),R.layout.list_item_new);
           
                partyList.setAdapter(partyAdapter);
                partyList.setItemsCanFocus(true);
                partyList.setOnItemClickListener(new OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position,
                                            long id) {

                        Toast.makeText(getActivity().getApplicationContext(), "Clicked",
                                Toast.LENGTH_SHORT).show();
                    }
                });

Wenn das nicht funktoniert, dann bitte einmal dein PartyAdapter hier einfügen

Das war zwar nicht die Lösung, aber grundsätzlich funktioniert deine Möglichkeit. Mein Problem war der ImageButton. Sobald ich diesen mit in das Layout File einfüge, sind die Items in der ListView nicht mehr anklickbar. Ist der ImageButton in der Layout Datei ausgeklammert, funktioniert es.

Es stellt sich nun also folgende neue Frage:
Wie kann ich in jedes Item von der ListView den ImageButton einfügen und funktionsfähig machen? Oder geht das nicht?


Folgendermaßen habe ich es jetzt:

Der ImageButton wird in der xml Datei des Items erstellt:
Code:
<ImageButton
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:id="@+id/fav_b"
        android:src="@drawable/addfav"
        android:layout_alignBottom="@+id/party_adresse"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignLeft="@+id/age_pic"
        android:layout_alignStart="@+id/age_pic"
        android:layout_alignTop="@+id/party_zeit" />

Und in meinem CustomAdapter wird der Lauscher für jeden ImageButton von jedem einzelnen Item der ListView erstellt:
Code:
itemHolder.addfav_b = (ImageButton) row.findViewById(R.id.fav_b);

            itemHolder.addfav_b.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    // Perform action on click
                    Toast.makeText(getContext(), "ImageButton " + itemHolder.name_tv.getText(),
                            Toast.LENGTH_SHORT).show();
                }
            });

Dies klappt alles soweit. Der ImageButton erfüllt auch seine Funktion. Allerdings kann ich jetzt nicht mehr die einzelnen Items der ListView an sich anklicken. Wie kann ich das jetzt beheben?

Gruß
Jan

PS: Problem gelöst!
Es ist nicht einfach möglich einen Button oder ImageButton in einer ListView darzustellen, da sonst das Anklicken der ListView Items nicht mehr funktioniert.
Gelöst habe ich dieses Problem, indem ich den ImageButton zu einer ImageView gemacht habe und dieser das Attribut "android:clickable="true"" gegeben habe. Nun konnte ich einen onClickListener für dieses ImageView erstellen und dort die normale Aktion ausführen, sobald der Button (ImageView) gedrückt wurde.
 
Zuletzt bearbeitet:

Ähnliche Themen

A
Antworten
10
Aufrufe
1.017
swa00
swa00
C
Antworten
8
Aufrufe
1.122
swa00
swa00
J
Antworten
5
Aufrufe
925
swa00
swa00
Zurück
Oben Unten