Gibbsnich
Ambitioniertes Mitglied
- 0
Hallo,
ich möchte das das Contextmenü von verschiedenen Klassen aus öffnen und habe die entsprechenden Listener implementiert.
In meiner Activity gibt es folgende Funktion:
Der Debugger zeigt, dass diese Funktion auch fleißig aufgerufen wird, jedoch erscheint das Contextmenü nicht.
Erstellt wird es in der Activity:
(Von anderer Stelle im Programm klappt das auch ganz prima !)
Die OnCreate....Funktion wird auch den Views zugewiesen, z.B. bei der Gallery:
Warum komme nur zum Aufruf openContextMenu(), ohne dass ein Menü erscheint ?
ich möchte das das Contextmenü von verschiedenen Klassen aus öffnen und habe die entsprechenden Listener implementiert.
In meiner Activity gibt es folgende Funktion:
Code:
public void startMenu(View view) {
openContextMenu(view);
}
Erstellt wird es in der Activity:
Code:
OnCreateContextMenuListener contextMenuListener = new OnCreateContextMenuListener(){
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuinfo){
if (v.equals(BIS_Common.myGallery)) {
menu.clear();
menu.add(0, BIS_Common.IS_XML_LISTE, 2, "Option 1");
menu.add(0, BIS_Common.IS_XML_DIALOG, 3, "Option 2");
} else {
if (BIS_Common.LastXmlData == null){
menu.clear();
} else {
BIS_Common.LastXmlData.erstelleMenu(menu);
}
}
}
}
Die OnCreate....Funktion wird auch den Views zugewiesen, z.B. bei der Gallery:
Code:
public View getView(int position, View convertView, ViewGroup parent) {
TextView v = new TextView(mContext);
GalleryRec gRec = null;
String ausgabe = "Pos " + position;
v.setBackgroundResource(mGalleryItemBackground);
v.setText(ausgabe);
v.setLayoutParams(new Gallery.LayoutParams(breite + 10, 64));
v.setGravity(Gravity.CENTER_HORIZONTAL);
v.setOnLongClickListener(new OnLongClickListener(){
@Override
public boolean onLongClick(View v){
// mainOnCreateCtxMenuL zeigt auf die o.g. Funktion meiner Activity
v.setOnCreateContextMenuListener(mainOnCreateCtxMenuL);
BIS_Common.bisActivity.startMenu(v);
return false;
}
});
return v;
}