DNe*_*ell 3 android contextmenu android-alertdialog
我创建了一个简单的应用程序,只显示一个AlertDialog,列表中有四个项目.我注册了一个上下文菜单.当我长按其中一个项目时,我会看到上下文菜单.然后我从上下文菜单中选择一个项目,但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;
}
}
Run Code Online (Sandbox Code Playgroud)
在main.xml中,我只是一个用android定义的按钮:onClick ="selectScheme"
小智 9
在此之后:
registerForContextMenu(alert.getListView());
Run Code Online (Sandbox Code Playgroud)
输入:
alert.getListView().setOnCreateContextMenuListener(this);
Run Code Online (Sandbox Code Playgroud)
而不是onContextItemSelected(MenuItem item)函数使用这个:
@Override
public boolean onMenuItemSelected(int featureId, MenuItem menuItem) {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6628 次 |
| 最近记录: |