Popup window aus ListView öffnen

  • 1 Antworten
  • Letztes Antwortdatum
J

jdajul

Ambitioniertes Mitglied
1
Hallo, ich möchte gerne eine Liste erstellen mit Veranstaltungen. Dort stehen in der Liste Name und Informationen zu der jeweiligen Veranstaltung. Eine veranstaltungsbeschreibung soll jetzt bei klick auf den jeweiligen Listview Eintrag aufpoppen.
Hier mein Versuch, kann mir jemand sagen was ich falsch mache? bei mir kommt leider immer der gleiche Eintrag in die Beschreibung, nicht der zur Veranstaltung gehörige...

Code:
myDB = this.openOrCreateDatabase(MY_DB_NAME, Context.MODE_ENABLE_WRITE_AHEAD_LOGGING, null);
        DMReturn a = DialogManager.manageDialogue(myDB, response);
        Map<String, String> variables = a.getDbreturn();
        String dialogact = a.getDialogact();
        System.out.println("databasae inhalt " + a);
        List<Map> events = a.getEvents();
        items.clear();
        items.add(new SectionItem("Weitere Veranstaltungen..."));

        for (int i = 0; i < events.size(); i++) {
            Map event = a.getEvents().get(i);
            items.add(new EntryItem(event.get("name").toString(), "Ort: " + event.get("addressname").toString() +
                    "  Zeit: " + event.get("time") + "  Datum: " + event.get("date") + "  Ort: " + event.get("addressCity")));

            lview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                        long arg3) {
                    // TODO Auto-generated method stub
                    final LayoutInflater layoutInflater
                            = (LayoutInflater)getBaseContext()
                            .getSystemService(LAYOUT_INFLATER_SERVICE);
                    View popupView = layoutInflater.inflate(R.layout.popup, null);
                    final PopupWindow popupWindow = new PopupWindow(
                            popupView,
                            ViewGroup.LayoutParams.WRAP_CONTENT,
                            ViewGroup.LayoutParams.WRAP_CONTENT);
                    ((TextView)popupView.findViewById(R.id.popuptext)).setText(event.get("description").toString());

                    Button btnDismiss = (Button) popupView.findViewById(R.id.dismiss);
                    btnDismiss.setOnClickListener(new Button.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            // TODO Auto-generated method stub
                            popupWindow.dismiss();
                        }
                    });
                  //  popupWindow.showAtLocation();
                    popupWindow.showAsDropDown(lview,0,-50);

                }
            });
        }
        lview.setAdapter(adapter);
 
Du überschreibst jedes mal onItemClick in der for.. Dein letztes Event wird dort eingetragen...
 
  • Danke
Reaktionen: jdajul
Zurück
Oben Unten