Textview ID an Context menü übergeben

  • Antworten:5
Gelöschter Account
  • Forum-Beiträge: 51

04.10.2010, 10:36:41 via Website

Ich steck grad bei folgendem Problem: Ich habe eine Tabelle in der die TextViews eigene ID's haben und diese sind für das Contextmenu registriert.
Aber wie komm ich nun in onContextItemSelected an die ID der Textviews?

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

04.10.2010, 11:48:57 via Website

Das ist einfach:

1public boolean onContextItemSelected(final MenuItem _item)
2 {
3
4 switch (_item.getItemId())
5 {
6 case CONTEXT_DISABLE_ITEM_ID:
7 setActive(false);
8 break;
9 case CONTEXT_ENABLE_ITEM_ID:
10 setActive(true);
11 break;
12 case CONTEXT_EDIT_ITEM_ID:
13 editSpot(selectedID);
14 break;
15 case CONTEXT_FORECAST_ITEM_ID:
16 showForcastForSpot(selectedID);
17 break;
18 case CONTEXT_DELETE_ITEM_ID:
19 deleteSpot(selectedID);
20 break;
21
22 default:
23 throw new IllegalArgumentException("Unknown Item ID " + _item.getItemId());
24 }
25
26 return true;
27 }

hth,
Mac

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Gelöschter Account
  • Forum-Beiträge: 51

04.10.2010, 12:05:20 via Website

Entweder seh ichs grad nicht oder wir reden aneinander vorbei. Ich weiß wie ich in der switch - case Anweisung die Menu ID überprüfe.

Bei mir siehts so aus. Ich habe irgendwo ein Textview
1TextView subject = new TextView(this);
2 subject.setText("asdf");
3 subject.setId(20);
4 registerForContextMenu(subject);
Die ID ist die ID des Datensatz in der SQLite Datenbank.
Wenn ich nun auf dieses Element das Kontextmenü aufrufe will ich genau diese ID mitnehmen und in den Intent einbauen. Ich weiß nicht wie und ob ich auf die ID des Textview Elemtns zugreifen kann.

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

04.10.2010, 13:17:28 via App

in dem context Menü sind aber nur menuitems. daher wirst du das evtl cachen müssen oder deine Datenbank id dem menuitem geben.

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Gelöschter Account
  • Forum-Beiträge: 51

04.10.2010, 13:33:04 via Website

hmm dacht ich mir fast. Dann werd ich mir was überlegen müssen.

Antworten
Gelöschter Account
  • Forum-Beiträge: 51

06.10.2010, 17:53:02 via Website

Jetzt ärgerts mich^^ das war heut ein klarer Fall von zu kompliziert gedacht :D
Für alle die es vielleicht noch interessiert, das ist meine (und wahrscheinlich die einfachste Lösung.
1public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
2....
3viewId = v.getId(); // Lösung
4....

viewId wird als Attribut der Klasse definiert, sodass man in onContextItemSelected Zugriff darauf hat.

Mac Systems

Antworten