Android 返回键事件代码示例
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DialogOnKeyListener dialogOnKeyListener = new DialogOnKeyListener();
AlertDialog alertDialog = new AlertDialog.Builder(this)
.setTitle(R.string.title_low_storage)
.setMessage(R.string.message_low_storage)
.setPositiveButton(R.string.clear,
new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
Intent intent = new Intent("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
intent.setComponent(ComponentName.unflattenFromString("com.android.filemanager/.FileManagerActivity"));
startActivity(intent);
//finish();
}
})
.setNegativeButton(R.string.cancel,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
.setOnKeyListener(dialogOnKeyListener)
.show();
public class DialogOnKeyListener implements OnKeyListener {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
if (dialog != null)
dialog.dismiss();
finish();
//mDialogIsShowing = false;
}
return false;
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DialogOnKeyListener dialogOnKeyListener = new DialogOnKeyListener();
boolean stroageFlag = isSdcardStroagePath();
//String PhoneInOrOutSdCardName = "";
if (stroageFlag) { // true is sdCard stroage path
message = res.getString(R.string.sdcard_error_space_expired);
//Toast.makeText(SoundRecorder.this, message,Toast.LENGTH_SHORT).show();
if (message != null) {
new AlertDialog.Builder(this).setTitle(R.string.recorder_space_insufficient)
.setMessage(message)
.setPositiveButton(R.string.button_clean_name1, new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
String UDISK_2 = Environment.getExternalSdDirectory().getAbsolutePath().toLowerCase();
String PhoneInOrOutSdCardName = "PhoneOutSdCardName";
Intent intent = new Intent();
intent.putExtra(PhoneInOrOutSdCardName, UDISK_2);
ComponentName cName = new ComponentName("com.android.filemanager","com.android.filemanager.FileManagerActivity");
intent.setComponent(cName);
startActivity(intent);
}
})
.setNegativeButton(R.string.cancel,null)
.setOnKeyListener(dialogOnKeyListener)
.setCancelable(false).show();
}
//Intent intent = new Intent();
//intent.setClass("com.android.gallery3d","com.android.camera.Camera");
//startActivity(intent);
}else { //false is phone stroage path
message = res.getString(R.string.phone_error_space_expired);
//Toast.makeText(SoundRecorder.this, message,Toast.LENGTH_SHORT).show();
if (message != null) {
new AlertDialog.Builder(this).setTitle(R.string.recorder_space_insufficient)
.setMessage(message)
.setPositiveButton(R.string.button_clean_name1,new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
String UDISK_1 = Environment.getInternalStorageDirectory().getAbsolutePath().toLowerCase();
String PhoneInOrOutSdCardName = "PhoneInCardName";
Intent intent = new Intent();
intent.putExtra(PhoneInOrOutSdCardName, UDISK_1);
ComponentName cName = new ComponentName("com.android.filemanager","com.android.filemanager.FileManagerActivity");
intent.setComponent(cName);
startActivity(intent);
}
})
.setNegativeButton(R.string.cancel,null)
.setOnKeyListener(dialogOnKeyListener)
.setCancelable(false).show();
}
}
public class DialogOnKeyListener implements OnKeyListener {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
if (dialog != null)
dialog.dismiss();
finish();
//mDialogIsShowing = false;
}
return false;
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------