显示虚拟按钮Menu键

4.0以上部分手机有了虚拟按钮

但是调用API是隐藏的,网上搜了一通,


有说是这样的:

  1. <uses-sdk android:minSdkVersion="8" />  
亲测不管用。


有这样的:

  1. getWindow().setFlags(WindowManager.LayoutParams.FLAG_NEEDS_MENU_KEY, WindowManager.LayoutParams.FLAG_NEEDS_MENU_KEY);   
后面的两个Flag都是隐藏的, 强行敲了报错。


还有这样的:

  1. getWindow().setFlags(0x080000000x08000000);  
也无效。


最后我是这样做的:

private void showNativeMenu() {
		// getWindow().setFlags(WindowManager.LayoutParams.flag_n,
		// WindowManager.LayoutParams.FLAG_NEEDS_MENU_KEY);
		// getWindow().setFlags(0x08000000, 0x08000000);
		try {
			getWindow().addFlags(WindowManager.LayoutParams.class.getField("FLAG_NEEDS_MENU_KEY").getInt(null));
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (NoSuchFieldException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
4.4截图:

监听就是onOptionMenuSelect 监听的。

posted @ 2015-03-05 23:06  顾明伟  阅读(293)  评论(0编辑  收藏  举报