onContextItemSelected scheint nicht genannt zu werden
Ich bin erstellen Sie eine sehr einfache Tätigkeit, basierend auf einer Liste anzeigen.
Ich möchte hinzufügen, um ein Kontextmenü zu jeweils einem der Elemente in der Liste, also rief ich registerForContextMenu(mListView)
.
Ich habe dann implementiert die Methoden onCreateContextMenu
und onContextItemSelected
.
Den onCreateContextMenu
funktioniert (das Kontext-Menü wird richtig angezeigt), aber wenn ich auf ein item von diesem Menü passiert nichts, das Kontext-Menü verschwindet und die Methode onContextItemSelected
ist nicht genannt (ich habe nur eine log-in-check).
Wenn es helfen kann, beachten Sie, dass die ListView
hat auch eine onItemClickListener
attached to it.
Habe ich etwas vergessen ?
Dank !
EDIT: hier der code (ich versteckte einige irrelevante Sachen)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mListView = new ListView(this);
mContacts = new Vector<Contact>();
mAdapter = new ContactAdapter(this, mContacts);
registerForContextMenu(mListView);
mListView.setAdapter(mAdapter);
mListView.setOnItemClickListener(new OnItemClickListener() {
... };
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if (v == mListView) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.list_item_contextmenu, menu);
}
}
@Override
public boolean onContextItemSelected(MenuItem item) {
Log.v("Contacts", "onContextItemSelected called");
return super.onContextItemSelected(item);
}
EDIT 2: ich habe den onContextMenuClosed()
- Methode, die ordnungsgemäß aufgerufen, wenn das Menü geschlossen ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich erlebt haben das gleiche problem mit der ActionBarSherlock Bibliothek.
Wenn Sie mit, die Bibliothek, stellen Sie sicher, dass Sie importieren die richtige MenuItem, die
android.view.MenuItem
.Oder einfach nur geben Sie das vollständige Paket in der Methode header wie dieser:
Ohne zu sehen, deinen code kann ich nicht eine genaue Antwort geben, aber Sie können versuchen, fügen Sie die ContextMenuListener manuell
Entfernen Sie diesen Haken bitte:
vom
onCreateContextMenu(..)
MethodemListView.setOnItemClickListener(new OnItemClickListener() { ... };
?Fand ich einen workaround hier :
onContextItemSelected nie als ein Dialog mit einer ListView
Allerdings würde ich noch gerne wissen, warum es nicht funktioniert, wie erwartet.
Danke Euch allen für Eure Zeit !
Verwenden OnMenuItemClickListener es ist Arbeit.