android开发中,按手机返回键,当前Activity 和 ProgressDialog 同时关闭?
pd=ProgressDialog.show(this,"请稍候。。刷新中",msg,true,false);pd.setCancelable(true);//点击返回键...
pd = ProgressDialog.show(this, "请稍候。。刷新中", msg, true,false);
pd.setCancelable(true); //点击返回键可以取消 需要设置为true 不能取消就用false
new Thread() {
public void run() {
try {
Thread.sleep(1000); // 运行1秒为例
System.out.println("开始转动");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//pd就是ProgressDialog
//下面是 返回键 按钮 监听 代码
public boolean onKeyDown(int keyCode,KeyEvent event){
//按下键盘上返回按钮
if(keyCode == KeyEvent.KEYCODE_BACK){
pd.dismiss();
pd.cancel();
finish();
}
return super.onKeyDown(keyCode, event);
}
//我现在的问题是我要按两下才可以退出页面, 按一下是取消 ProgressDialog ,第二下才是 退出页面。。。。 我上面这样写应该是直接退出页面和 PD把? 为什么这样不行。。就大神指教 展开
pd.setCancelable(true); //点击返回键可以取消 需要设置为true 不能取消就用false
new Thread() {
public void run() {
try {
Thread.sleep(1000); // 运行1秒为例
System.out.println("开始转动");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//pd就是ProgressDialog
//下面是 返回键 按钮 监听 代码
public boolean onKeyDown(int keyCode,KeyEvent event){
//按下键盘上返回按钮
if(keyCode == KeyEvent.KEYCODE_BACK){
pd.dismiss();
pd.cancel();
finish();
}
return super.onKeyDown(keyCode, event);
}
//我现在的问题是我要按两下才可以退出页面, 按一下是取消 ProgressDialog ,第二下才是 退出页面。。。。 我上面这样写应该是直接退出页面和 PD把? 为什么这样不行。。就大神指教 展开
1个回答
展开全部
ProgressDialog 是 Dialog 的子类。
而Dialog有一个setOnCancelListener函数,可以监听对话框的取消事件,对话框在使用Back键或取消按钮关闭时,会执行对话框的cancel函数,这是就会触发事件。
所以你只要加一句pd.setOnCancelListener(...),在里面写好回调即可。
而Dialog有一个setOnCancelListener函数,可以监听对话框的取消事件,对话框在使用Back键或取消按钮关闭时,会执行对话框的cancel函数,这是就会触发事件。
所以你只要加一句pd.setOnCancelListener(...),在里面写好回调即可。
更多追问追答
追问
pd.setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface dialog) {
finish();
}
});
//我写了这个还是要点两次。。又是依次关闭pd 和当前页面
追答
public class TestActivity extends Activity {
private ProgressDialog dialog = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
dialog = ProgressDialog.show(this, "ProgressDialog", "Test Cancel");
dialog.setCancelable(true);
dialog.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface arg0) {
finish();
}
});
}
}
已测试好用。你放在单独的Activity里试一试,应该是你的调用方式出错了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询