问题描述
|
单击按钮时,我想打开上下文菜单,但是单击按钮时,我还必须知道焦点在哪个列表项上。你知道怎么做吗?
onclick
方法应使用什么代码?
解决方法
我一直在寻找相同的东西,发现应该使用对话框代替上下文菜单
final CharSequence[] items = {\"Red\",\"Green\",\"Blue\"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(\"Pick a color\");
builder.setItems(items,new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int item) {
Toast.makeText(getApplicationContext(),items[item],Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = builder.create();
alert.show();
http://developer.android.com/guide/topics/ui/dialogs.html#AlertDialog
,如果您真的出于某种原因想要这样做...(就我而言,出于懒惰)
在您的活动的“ѭ2”期间或用户可以触摸该按钮之前的某个位置,在该按钮上执行“ѭ3”。然后在实际的按钮onClick处理程序中,调用openContextMenu(View)
。
例如,我有一个在xml中声明的按钮,例如
<Button
android:id=\"@+id/btn_help\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:onClick=\"onHelp\"
android:text=\"@string/help_btn_text\" />
在我的onCreate中
registerForContextMenu(findViewById(R.id.btn_help));
并在onHelp函数中
public void onHelp(View v) {
openContextMenu(v);
}
之所以可行,是因为View v与为上下文菜单注册的视图相同。
,首先,您应该通过调用registerForContextMenu(View view)注册视图。其次,重写onCreateContextMenu()以添加菜单,最后,重写onContextItemSelected()以在每个菜单上放置逻辑。
,首先,您应该知道为什么要使用ContextMenu
。视图的“ 8”功能类似于PC上的右键单击菜单,这意味着某些项目上的“可用操作”。
根据您的描述,我认为您真正需要的是带有列表的自定义对话框,单击按钮时将显示该列表,并且还可以获取get10ѭ的重点项目。然后,您可以为某些确实需要菜单的视图保存ContextMenu
的注册:)