gpt4 book ai didi

android - 按下后退按钮时完成 Activity (警报对话框)

转载 作者:行者123 更新时间:2023-11-29 14:39:38 25 4
gpt4 key购买 nike

我正在开发一个将一些 json 解析为 ListView (背景)的应用程序。当数据无法填充 ListView 时,我目前正在尝试处理错误。

我已经在 onPostExecute 方法中通过创建一个警告对话框来处理这个问题,如下面的代码所示

    protected void onPostExecute(String args) {
progressDialog.dismiss();

//Shows alert dialog if data is unavailable

if(args != null && args.equals(noData)){
AlertDialog.Builder builder = new AlertDialog.Builder(JsonActivity.this);
builder.setTitle("Title");
builder.setMessage(noData);
AlertDialog alert = builder.create();
alert.show();

}


}

这工作正常,但如果我单击后退按钮,它会返回到一个未填充的空白 ListView 。

如果在显示警告对话框时按下后退按钮,我想完成 Activity 。

我也尝试过覆盖 onBackPressed 方法,但它没有用。

        @Override
public void onBackPressed() {
JsonActivity.this.finish();
}

有什么想法吗?

最佳答案

...
builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// if from activity
finish();
// if activity is a field
//activity.finish();
}

});

onCancel 如果您的对话框在显示时按下后退按钮可取消,则会触发。

或者使用一个 OnDismissListener ,无论你是按下某个按钮还是后退按钮,只要对话框被关闭,它就会被调用

...
AlertDialog alert = builder.create();
alert.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
finish();
}
});
alert.show();

如果没有数据而不是拨号,通常更好的做法是显示 Toast。

        if(args != null && args.equals(noData)){
Toast.makeText(context, noData, Toast.LENGTH_LONG).show();
finish();
}

关于android - 按下后退按钮时完成 Activity (警报对话框),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15002092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com