1. DrLiightninG, 07.03.2016 #1
    DrLiightninG

    DrLiightninG Threadstarter Neues Mitglied

    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: 07.03.2016
  2. 123thomas, 07.03.2016 #2
    123thomas

    123thomas Fortgeschrittenes Mitglied

    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
     
  3. DrLiightninG, 07.03.2016 #3
    DrLiightninG

    DrLiightninG Threadstarter Neues Mitglied

    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: 07.03.2016
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Stringbuilder append to listview and searchview Android App Entwicklung 08.08.2019
Navigation Drawer Einfügen Android App Entwicklung 02.04.2019
RecyclerView Items Sortieren Android App Entwicklung 08.11.2018
Hilfestellung Appentwicklung Android App Entwicklung 29.09.2018
Du betrachtest das Thema "ImageButton bei Items für ListView einfügen" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.