我已經做了一個簡單的應用程序,只是提出了一個AlertDialog,列表中有四個項目。我註冊一個上下文菜單。當我長時間點擊其中一個項目時,我會看到上下文菜單。然後我從上下文菜單中選擇一個項目,但onContextItemSelected永遠不會被調用。任何幫助?謝謝。onContextItemSelected沒有被調用
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;
}
}
main.xml中,我只用機器人中定義的按鈕:的onClick = 「selectScheme」
我只想說,我花了在這個問題上很長一段時間,你的答案是唯一一個已經工作。我首先嚐試了其他20種左右的解決方案。對於那些可能不明白的人,是的,將代碼從onContextItemSelected移動到onMenuItemSelected方法。然後刪除onContextItemSelected方法。 – Bryan 2013-12-12 07:59:49