Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Menü bei OnClick

Das Thema "Menü bei OnClick" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 12.01.2012, 18:17   #1 (permalink)
Junior Mitglied
 
Benutzerbild von Micka

Registriert seit: 30.12.2011
Beiträge: 43
Abgegebene Danke: 17
Erhielt 0 Danke für 0 Beiträge
Frage Menü bei OnClick

Hy,

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)
nicht mehr auf die ID der Datenbankzeile zugreifen kann aus der das item ursprünglich kam.

Also habe ich mir gedacht ich setze einfach im Layout der Listview bei den einzelnen Views das folgende Attribut.
Code:
android:onClick="beliebigeOnClickMethode"
Nachdem der eigeneListAdapter die Textviews dann mit ihrem Inhalt aus der Datenbank befüllt hat setze ich per
Code:
setID()
noch schnell die ID des Textviews auf die ID der Datenbankzeile.

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();
}
damit könnte ich nun arbeiten um z.B: in der Datenbank eine Zeile zu löschen oder zu ändern. Aber eben das oder ist das Problem.

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.
Micka ist offline   Mit Zitat antworten
Alt 12.01.2012, 19:36   #2 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Menü bei OnClick

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 )
swordi ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei swordi für diesen Beitrag:
Micka (13.01.2012)
Alt 13.01.2012, 09:04   #3 (permalink)
Junior Mitglied
 
Benutzerbild von Micka

Registriert seit: 30.12.2011
Beiträge: 43
Abgegebene Danke: 17
Erhielt 0 Danke für 0 Beiträge
Standard AW: Menü bei OnClick

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?
Micka ist offline   Mit Zitat antworten
Alt 13.01.2012, 09:19   #4 (permalink)
Junior Mitglied
 
Benutzerbild von Micka

Registriert seit: 30.12.2011
Beiträge: 43
Abgegebene Danke: 17
Erhielt 0 Danke für 0 Beiträge
Standard AW: Menü bei OnClick

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.
Micka ist offline   Mit Zitat antworten
Alt 13.01.2012, 09:29   #5 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Menü bei OnClick

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 )
swordi ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei swordi für diesen Beitrag:
Micka (13.01.2012)
Alt 13.01.2012, 09:50   #6 (permalink)
Junior Mitglied
 
Benutzerbild von Micka

Registriert seit: 30.12.2011
Beiträge: 43
Abgegebene Danke: 17
Erhielt 0 Danke für 0 Beiträge
Standard AW: Menü bei OnClick

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?
Micka ist offline   Mit Zitat antworten
Alt 13.01.2012, 10:26   #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
Standard AW: Menü bei OnClick

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?
samarek ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei samarek für diesen Beitrag:
Micka (13.01.2012)
Alt 13.01.2012, 10:29   #8 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Menü bei OnClick

Zitat:
Zitat von Micka Beitrag anzeigen
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?

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 )
swordi ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei swordi für diesen Beitrag:
Micka (13.01.2012)
Alt 13.01.2012, 21:43   #9 (permalink)
Junior Mitglied
 
Benutzerbild von Micka

Registriert seit: 30.12.2011
Beiträge: 43
Abgegebene Danke: 17
Erhielt 0 Danke für 0 Beiträge
Standard AW: Menü bei OnClick

@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?
Micka ist offline   Mit Zitat antworten
Alt 13.01.2012, 22:46   #10 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Menü bei OnClick

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 )
swordi ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei swordi für diesen Beitrag:
Micka (14.01.2012)
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

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




Du liest gerade: "Menü bei OnClick" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.