| |||||||
Das Thema "Menü bei OnClick" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Junior Mitglied Registriert seit: 30.12.2011
Beiträge: 43
Abgegebene Danke: 17
Erhielt 0 Danke für 0 Beiträge
| ich arbeite gerade an einer App die unter anderem eine Activity besitzt, die ListActivity implementiert. Mittels eigenem ListAdapter ist es mir bereits gelungen die Daten für die Liste aus einer Datenbank zu lesen. So weit so gut. Mein Wunsch ist es nun das sich ein Menü(meinetwegen ein KontextMenu) öffnet wenn man auf eines der Elemente(Alles TextViews) des ListView klickt. Mit einem normalen KontextMenu bin ich nicht weit gekommen. Problem dabei ist das ich in der Methode Code: public boolean onContextItemSelected(MenuItem item) Also habe ich mir gedacht ich setze einfach im Layout der Listview bei den einzelnen Views das folgende Attribut. Code: android:onClick="beliebigeOnClickMethode" Code: setID() nun könnte ich in meiner Activity in der Methode bequem auf die Id zugreifen. Beispiel: Code: public void beliebigeOnClickMethode(View v)
{
Textview textview = (Textview) view;
int id = textview.getID();
} Wie kriege ich ein Menü hin das nun zwischen den zwei Fällen(EDIT, DELETE) entscheidet? Das normale OptionsMenü der Activity scheidet aus da es bereits anderweitig genutzt ist. |
| | |
| | #2 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
du kannst mittels meniiteminfo auf die position der geklickten zeile innerhalb deiner onContextItemSelected zugreifen. such mal danach
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) |
| | |
| Folgender Benutzer bedankt sich bei swordi für diesen Beitrag: | Micka (13.01.2012) |
| | #3 (permalink) |
| Junior Mitglied Registriert seit: 30.12.2011
Beiträge: 43
Abgegebene Danke: 17
Erhielt 0 Danke für 0 Beiträge
|
okay, werd mir das mal raussuchen. Einen eigenen Menüartigen Dialog in der onClickMethode kann ich nicht erzeugen oder gibt es dafür auch eine Möglichkeit?
|
| | |
| | #4 (permalink) |
| Junior Mitglied Registriert seit: 30.12.2011
Beiträge: 43
Abgegebene Danke: 17
Erhielt 0 Danke für 0 Beiträge
|
Mir ist gerade eine eventuelle Lösung mittels Kontextmenü eingefallen. Der List Adapter nutzt ja eine ArrayList. Wenn ich ihm nun eine angepasste ArrayList gebe kann ich mir getItemId so implementieren das die DatenbankId returned wird. Werde mal sehen was ich später noch hinkriege. |
| | |
| | #5 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
ich sag dir ja - du kannst ein contextmenu implementieren, dort über menuiteminfo die position des geklickten finden und dann vom adapter laden. registerForContextMenu(listview); nicht vergessen
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) |
| | |
| Folgender Benutzer bedankt sich bei swordi für diesen Beitrag: | Micka (13.01.2012) |
| | #6 (permalink) |
| Junior Mitglied Registriert seit: 30.12.2011
Beiträge: 43
Abgegebene Danke: 17
Erhielt 0 Danke für 0 Beiträge
|
Ich hab gerade in der S-Bahn nochmal gegoogelt und folgendes gefunden. ContextMenü mit ListView verbinden und Daten übergeben. - Tutorials & FAQs - Android-Developers Es scheint also eine Lösung für mein Problem zu geben. Allerdings verstehe ich an dieser Lösung einiges nicht, ohne es zu verstehen will ich es nicht implementieren. Was bewirkt startManagingCursor z.B., Desweiteren ist mir mit einem simpleCursorAdapter nicht geholfen. Ich müsste das ganze auf meinen Code anpassen. Kann jemand von euch den gesamten Code nachvollziehen? |
| | |
| | #7 (permalink) |
| Android-Hilfe.de Mitglied Modell: Samsung Galaxy S2 (I9100) Registriert seit: 24.10.2011
Beiträge: 77
Abgegebene Danke: 13
Erhielt 2 Danke für 2 Beiträge
|
Also hier ist erstmal was "startManagingCursor" tut Activity | Android Developers und deine Frage aus dem ersten Post verstehe ich nicht so ganz, zu den ContextMenus gibt es doch die onContextItemSelected(MenuItem item), da kannst du doch dann wieder ganz einfach unterscheiden welche Option im Kontextmenü gewählt wurde. Beantwortet das deine Frage? oder was wolltest du wissen? |
| | |
| Folgender Benutzer bedankt sich bei samarek für diesen Beitrag: | Micka (13.01.2012) |
| | #8 (permalink) | |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
| Zitat:
er nutzt halt einen CursorAdapter, das musst ja nicht. für dich interessant ist eher folgendes info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); info.position und schon hast die ausgewählte listen position. dann nur noch vom adapter das objekt holen und schon hast alles was du brauchst ( je nachdem was dein adapter für daten hält ) ist ja jetzt echt nicht so ne große herausforderung oder ?
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) | |
| | |
| Folgender Benutzer bedankt sich bei swordi für diesen Beitrag: | Micka (13.01.2012) |
| | #9 (permalink) |
| Junior Mitglied Registriert seit: 30.12.2011
Beiträge: 43
Abgegebene Danke: 17
Erhielt 0 Danke für 0 Beiträge
|
@samarek das gewählte Menuitem zu finden ist kein Problem aber die Id des Datenbankeintrags der dahinter steckt ist knifflig. @swordi greift info.position auf die Methode GetItemId des ListAdapters zu oder woher kennt AdapterView.AdapterContextMenuInfo die id des Eintrags in der Datenbank? Oder gibt info.position mir die id des TextViews das geklickt wurde? |
| | |
| | #10 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
info.position ist, wie der name schon sagt, die position in der liste position = 3 wird das dritte element sein. einfach getItem(position) aufrufen und du bekommst das item aus dem adapter. logisch oder?
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) |
| | |
| Folgender Benutzer bedankt sich bei swordi für diesen Beitrag: | Micka (14.01.2012) |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| onClick bei EditText | Gibbsnich | Android App Entwicklung | 2 | 29.08.2011 14:42 |
| Mehrere OnClick bei Widget für das selbe Intent | Inuyashaxp | Android App Entwicklung | 1 | 31.07.2011 22:08 |
| Menü Anordnung in Kategorien bei alternativ Launcher ähnlich wie bei LG ROM? | Flexo | LG P990 Optimus Speed Forum | 5 | 02.05.2011 20:25 |
| Hilfe bei Einstellung OR Menü | chrizara | Motorola Milestone Forum | 15 | 28.02.2011 15:49 |
| richtige stelle progressbar bei onclick im xml | jim | Android App Entwicklung | 4 | 14.10.2010 13:58 |