代码如下 我想通过监听菜单键来显示自定义的菜单 点击第一下的时候可以显示 但是之后就没有反应了 也没有输出 window dimiss 但是如果按了后退之后 显示的菜单消失了 再按menu的时候会输出 window dismiss
if (keyCode == KeyEvent.KEYCODE_MENU) {
if(window==null){
System.out.println("window is null");
showOutMenu();
}else{
System.out.println("window dismiss");
window.dismiss(); }
return true;
}
if (keyCode == KeyEvent.KEYCODE_MENU) {
if(window==null){
System.out.println("window is null");
showOutMenu();
}else{
System.out.println("window dismiss");
window.dismiss(); }
return true;
}
不是有系统方法创建菜单么 你试试onCreateOptionsMenu 监听事件在onOptionsItemSelected
或者贴下你的代码 看看是不是哪的逻辑有问题
用系统自带的Menu 不好看而且 没法加图片啊 我做的这个类似微信那种 一个图片加一行文字的模式下面是showOutMenu() window 是一个PopupWindow
private void showOutMenu(){
LayoutInflater layoutIn = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View view = layoutIn.inflate(R.layout.popmenu, null);
ImageView sat=(ImageView)view.findViewById(R.id.imageView_Sat);
ImageView loc=(ImageView)view.findViewById(R.id.imageView_loc);
sat.setOnClickListener(new OnClickListener(){ @Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(!isSat){
mapView.setSatellite(true);
isSat=true;
}else{
mapView.setSatellite(false);
isSat=false;
}
window.dismiss();
System.out.println("sat window dismiss");
}
});
loc.setOnClickListener(new OnClickListener(){ @Override
public void onClick(View v) {
// TODO Auto-generated method stub
new Thread(new ReLocationThread()).start();
window.dismiss();
System.out.println("loc window dismiss");
}
});
if (window == null)
{
window = new PopupWindow(view, LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT, true);
window.setAnimationStyle(R.style.popuStyle);
window.setBackgroundDrawable(new BitmapDrawable());
}
window.showAtLocation(findViewById(R.id.baidulocationlayout), Gravity.BOTTOM,
0, 0);
}
好了 现在问题已经解决了 是显示了 popupWindow之后系统监听不到 menu按键了
好了 现在问题已经解决了 是显示了 popupWindow之后系统监听不到 menu按键了
嗯 了解 需要为popupWindow监听menu键 实现消失 是吧