J'ai fait une application simple qui vient d'ouvrir un AlertDialog, avec quatre éléments dans la liste. J'enregistre un menu contextuel. Lorsque je clique longtemps sur l'un des éléments, j'obtiens le menu contextuel. Je sélectionne ensuite un élément dans le menu contextuel, mais onContextItemSelected n'est jamais appelé. De l'aide? Merci.onContextItemSelected ne se fait pas appeler
test.java:
package com.cerulean.tech.creations.test;
import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
public class test extends Activity {
private String[] files;
AlertDialog alert;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
files = new String[4];
}
public void selectScheme(View v) {
files[0] = "<New Scheme>";
files[1] = "test1";
files[2] = "test2";
files[3] = "test3";
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setItems(files, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
}});
alert = builder.create();
alert.show();
registerForContextMenu(alert.getListView());
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Context Menu");
menu.add(0, v.getId(), 0, "Delete");
menu.add(0, v.getId(), 0, "Cancel");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
return false;
}
}
En main.xml, je viens d'un bouton défini avec Android: onclick = "selectScheme"
Je veux juste dire que je l'ai passé beaucoup de temps sur cette question et votre réponse est celle qui a seulement travaillé. J'ai d'abord essayé les 20 autres solutions possibles en premier. Pour ceux qui pourraient ne pas comprendre, oui, déplacez le code de onContextItemSelected vers la méthode onMenuItemSelected. Et puis supprimez la méthode onContextItemSelected. – Bryan