2
我在這個主題上看到很多帖子,但無法爲我找到正確的答案。PopUpWindow返回鍵事件
我有一個活動,當我彈出彈出窗口變暗。 後退按鈕的工作,但只有第二次我按它,第一次按下關閉彈出窗口,但它不是不明暗的活動,因爲我不能從popupwindows捕捉事件,第二個新聞捕捉的活動,只有然後我可以使它變暗。
這裏是我試圖做到這一點:
m_PopupWindow.setBackgroundDrawable(new BitmapDrawable());
m_PopupWindow.setOutsideTouchable(true);
View popUpWindowLaout = m_PopupWindow.getContentView();
popUpWindowLaout.setFocusableInTouchMode(true);
//first press doesnt get caught here
popUpWindowLaout.setOnKeyListener(new View.OnKeyListener()
{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
m_ActionBar.show();
unShadeTheActivity();
m_PopupWindow.dismiss();
return true;
}
}
});
//本功能將趕上第二次按下,將工作,但我希望第一個按一定會做到。
@Override
public void onBackPressed() {
if (m_PopupWindow != null)
{
m_ActionBar.show();
unShadeTheActivity();
m_PopupWindow.dismiss();
}
else
{
super.onBackPressed();
}
}
刪除您'其他{super.onBackPressed(); }',它總是應該調用'super.onBackPressed();'來取消調暗我猜的屏幕。希望這可以幫助。 – user2652394
在所有情況下調用'super.onBackPressed' ...或者你可以在popupWindow上設置一個解僱監聽器,因爲你可以調用'finish();' – Faizan