由於回退鍵銷燬我的應用程序,所有數據都將丟失我需要攔截它以詢問用戶是否真的是他想要的。Android:攔截回密鑰
我以爲以下結構:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0)
{
// ask user if he really wants to exit
// no --> return true;
// yes --> return super.onKeyDown(keyCode, event);
//manually entering either of the return values works fine
}
return super.onKeyDown(keyCode, event);
}
的「詢問用戶」的一塊,我想用一個警告對話框來實現。我的問題是,現在顯示的是警告對話框,但onKeyDown方法在顯示警告對話框時運行到最後,並且在警告對話框中,我不知道如何告訴系統傳遞正確的返回值。
完整的代碼,我腦子裏想的是
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0)
{
alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Tile");
alertDialog.setMessage("data lost, are you sure?");
alertDialog.setButton(-1, getString(R.string.yes), new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
return;
//I only can return without a boolean value here. }
});
alertDialog.setButton(-2, getString(R.string.no), new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
return;
}
});
alertDialog.show();
}
return super.onKeyDown(keyCode, event);
}
感謝,A
刪除回報super.onKeyDown(的keyCode,事件); – motoku 2011-06-09 07:58:18