Java 短按显示关联菜单而不是长按
我有一个上下文菜单的问题,我有一个控制“ImageButton”当你长按显示上下文菜单 我需要用短点击来显示上下文菜单,而不是长点击,这可能吗 这是我目前使用的代码,菜单工作得很好Java 短按显示关联菜单而不是长按,java,android,eclipse,contextmenu,imageview,Java,Android,Eclipse,Contextmenu,Imageview,我有一个上下文菜单的问题,我有一个控制“ImageButton”当你长按显示上下文菜单 我需要用短点击来显示上下文菜单,而不是长点击,这可能吗 这是我目前使用的代码,菜单工作得很好 private ImageView btnRutas; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); reques
private ImageView btnRutas;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.fclientes);
btnRutas =(ImageView)findViewById(R.id.btnRutas);
btnRutas.setOnClickListener(this);
registerForContextMenu(btnRutas);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
if(v.getId()== R.id.btnRutas) {
menu.setHeaderIcon(android.R.drawable.ic_menu_more);
menu.setHeaderTitle("Rutas");
menu.add(0, 0, 0, "Ruta 1");
}
super.onCreateContextMenu(menu, v, menuInfo);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()){
case 0:
function();
}
}
提前感谢。我能想到的唯一方法是使用onClickListener()作为活动的一部分:
public class MyActivity extends Activity implements OnClickListener{
protected void onCreate(Bundle bundle) {
//Usual Activity Stuff
View v = (View)findViewById(R.id.view);
v.setOnClickListener(this);
}
public void onClick(View v) {
super.onClick(v);
this.openContextMenu(v);
}
}
我想你应该使用你想要应用的任何视图,而不是专门为此创建一个新视图。我希望这就是您想要的,并且这会有所帮助。如果不在代码中添加任何OnClickListener,您只能在xml中执行此操作。只需转到ImageView并添加:
android:onClick="openContextMenu"
这里有一个例子
<ImageView
android:id="@+id/btnRutas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="openContextMenu" />
我认为你应该使用弹出式菜单而不是上下文菜单。检查文档,或按以下方式执行:
private void showMenu(View v){
PopupMenu popup = new PopupMenu(context, v);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.menu.your_menu, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item1:
//your code
return true;
case R.id.menu_item2:
//your code
return true;
case R.id.menu_item3:
//your code
return true;
default:
return false;
}
}
});
popup.show();
}
在单击按钮的监听器中调用此方法并传递按钮。万岁!幸运编码:0)