本文介绍了onContextItemSelected不会被调用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我做了一个简单的应用程序,只是带来了一个AlertDialog,有四个项目在列表中。我注册一个上下文菜单。当我长按的项目之一,我得到的上下文菜单。然后,我从上下文菜单中的一项,但onContextItemSelected不会被调用。任何帮助吗?谢谢你。
I have made a simple app that just brings up an AlertDialog, with four items in the list. I register a context menu. When I long click one of the items, I get the context menu. I then select an item from the context menu, but onContextItemSelected never gets called. Any help? Thanks.
test.java:
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中,我只是与Android定义的按钮:的onClick =selectScheme
In main.xml, I just a button defined with android:onClick="selectScheme"
推荐答案
这行之后:
registerForContextMenu(alert.getListView());
输入:
alert.getListView().setOnCreateContextMenuListener(this);
和代替onContextItemSelected(菜单项项目)函数中使用这样的:
And instead of onContextItemSelected(MenuItem item) function use this:
@Override
public boolean onMenuItemSelected(int featureId, MenuItem menuItem) {
这篇关于onContextItemSelected不会被调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!