public
class
MainActivity
extends
Activity
{
/**
* menu的要求:
* 1.显示:点击menu键
* 2.退出:
* (1)再次点击menu
* (2)点击menu选项
* (3)点击menu(通知除外)以外的地方
* (4)点击back键
* (5)进入暂停状态
*
*/
private
PopupWindow mPopupMenu;
@Override
protected
void
onCreate(Bundle savedInstanceState)
{
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LayoutInflater inflater = getLayoutInflater();
View menulayout = inflater.inflate(R.layout.optionmenu_layout,
null
);
mPopupMenu =
new
PopupWindow(menulayout, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
menulayout.findViewById(R.id.textView1).setOnClickListener(
new
OnClickListener()
{
@Override
public
void
onClick(View v)
{
mPopupMenu.dismiss();
}
});
menulayout.findViewById(R.id.mainmenu).setOnClickListener(
new
OnClickListener()
{
@Override
public
void
onClick(View v)
{
mPopupMenu.dismiss();
}
});
}
@Override
protected
void
onPause()
{
if
(mPopupMenu.isShowing())
{
mPopupMenu.dismiss();
}
super
.onPause();
}
@Override
public
boolean
onKeyDown(
int
keyCode, KeyEvent event)
{
if
(keyCode == KeyEvent.KEYCODE_MENU)
{
if
(mPopupMenu.isShowing())
{
mPopupMenu.dismiss();
}
else
{
mPopupMenu.showAtLocation(findViewById(R.id.main), Gravity.BOTTOM,
0
,
0
);
}
return
true
;
}
if
(keyCode == KeyEvent.KEYCODE_BACK)
{
if
(mPopupMenu.isShowing())
{
mPopupMenu.dismiss();
}
else
{
finish();
}
return
true
;
}
return
super
.onKeyDown(keyCode, event);
}
/**
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
if(mPopupMenu.isShowing())
{
mPopupMenu.dismiss();
}
else
{
mPopupMenu.showAtLocation(findViewById(R.id.main), Gravity.BOTTOM, 0, 0);
}
//设置成false,则每次按menu都会启动onCreateOptionsMenu方法,否则只在创建时启动一次
return false;
}
*/
}