现有一个activity,并且有dialog弹出(如图)。
当在dialog存在的时候,点击手机back键,先退出的是此dialog,当再次点击手机返回键的时候,才能退出此activity。
那么如何写代码实现只点击一次手机back键时,退出当前activity?
实现:
private AlertDialog mDialog;
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.title_alert_text);
builder.setMessage(R.string.net_alert_text);
builder.setPositiveButton(R.string.setting,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
builder.setNegativeButton(R.string.cancanl,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
Loading.this.finish();
}
});
builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
Loading.this.finish();
}
});
mDialog = builder.create();
mDialog.show();
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){
mDialog.dismiss();
Loading.this.finish();
}
return super.onKeyDown(keyCode, event);
}
分享到:
相关推荐
创建好布局后,在`DialogActivity`的`onCreate()`方法中加载布局,并设置相应的点击事件。比如,关闭对话框的按钮点击事件: ```java @Override protected void onCreate(Bundle savedInstanceState) { super....
然而,当一个Dialog弹出时,Activity的这些方法将无法正常工作,因为Dialog会获取到焦点,导致Activity无法直接响应Back键。 在这种情况下,我们需要采取特殊的策略来监听Dialog的Back键事件: 1. **设置Dialog的`...
Android 如何解决dialog弹出时无法捕捉Activity的back事件 ... 然而在有dialog弹出时,想捕捉back键的事件的话,上述三种办法都无法实现。因为上述方法是重写在activity里面的,也就是说当activity是当前
在Android开发中,Dialog是一种常见的用户交互元素,用于在用户界面中显示临时信息或进行简单的交互操作。"全屏dialog小demo"是一个示例项目,它展示了如何将Dialog扩展为全屏模式,并添加监听功能来处理用户的交互...
通过以上代码,当用户在Dialog上按下Back键时,`onCancelClicked()`方法会被调用,从而关闭Dialog并结束Activity(或执行其他所需操作)。这样,我们就成功地解决了Dialog无法捕捉Back键的问题,确保了用户可以正常...
在Android开发中,Dialog和DialogFragment是两种常用的组件,用于在主界面之上显示临时的、半透明的弹出窗口,通常用于向用户展示警告、询问信息或者提供额外的操作选项。以下是对这两种组件的详细总结: 1. **...
// 设置对话框是否可以通过点击Back键关闭 builder.setMessage("这是一条消息"); // 设置对话框的消息内容 // 设置确认按钮 builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @...
通常,当用户进行某种操作或点击对话框上的按钮时,我们会调用此方法。 除了这些方法,还可以使用DialogFragment来管理对话框,这种方式更符合Android的现代架构,且支持在Fragment和Activity之间共享对话框。 接...
在多Activity应用中,管理Activity栈(back stack)至关重要。系统默认使用“后进先出”(LIFO)的栈结构,新的Activity压入栈顶,用户按返回键时,栈顶的Activity被弹出。开发者可以通过`FLAG_ACTIVITY_*`标志来...
在Android应用开发中,Activity是用户界面的基本组件,它负责展示屏幕上的交互内容。Activity的生命周期是Android系统管理和控制Activity状态的关键概念,对于理解和优化应用性能至关重要。本篇将深入探讨"Activity...
11. **DialogActivity**:用于展示模态对话框的Activity,通常用于需要用户交互但不想离开当前Activity的情况。 12. **Activity Transitions**:Android 5.0引入了Activity之间的过渡动画,可以自定义进入和退出...
可以在此方法中处理 Back 键按下时的行为。 - 示例:`@Override public void onBackPressed() { super.onBackPressed(); }` #### 三、Activity 生命周期 生命周期指的是 Activity 从创建到销毁所经历的不同状态...
同时,我们需要确保Dialog在用户点击屏幕其他区域或者按下Back键时也能正确关闭。 总结来说,这个自定义Dialog项目展示了如何结合ListView和枚举来实现一个具有交互性的弹出窗口。通过适配器处理数据,枚举增强代码...
在Android开发中,Dialog对话框是一种常见的用户交互元素,它用于在主界面之上显示临时信息或者需要用户进行简单操作的情况。本资料集包含了对Dialog对话框的源码学习,适用于那些希望深入理解Android UI机制以及...
点击“确认”按钮,对话框关闭且Activity结束;点击“取消”,则对话框消失,Activity继续运行。 总的来说,Android中的对话框是与用户交互的重要手段,理解并熟练使用这些方法可以帮助开发者创建更加友好和高效的...
点击“确认”会关闭对话框并结束Activity,而点击“取消”则只关闭对话框。 除了基本的`AlertDialog.Builder`,还可以自定义更复杂的对话框,例如使用自定义布局,或者创建进度对话框、日期/时间选择器等。要实现...
// 直接结束Activity return true; } else { Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); // 提示用户再次点击 exitTime = System.currentTimeMillis(); // 记录当前时间 } } ...