And*_*ast 1 android android-alertdialog
我正在开发一个应用程序,它将一些json解析为listview(背景).我正在尝试处理数据不可用于填充列表视图时的错误.
我已经通过创建一个Alert Dialog在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();
}
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但如果我单击后退按钮,它会返回到未填充的空白列表视图.
如果在显示警告对话框时按下后退按钮,我想完成活动.
我也尝试重写onBackPressed方法,但它没有用.
@Override
public void onBackPressed() {
JsonActivity.this.finish();
}
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
...
builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// if from activity
finish();
// if activity is a field
//activity.finish();
}
});
Run Code Online (Sandbox Code Playgroud)
如果在显示时按下后退按钮上的对话框被取消,则触发onCancel.
或者使用OnDismissListener,无论你按下某个按钮还是后退按钮,每当Dialog被解除时都会被调用
...
AlertDialog alert = builder.create();
alert.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
finish();
}
});
alert.show();
Run Code Online (Sandbox Code Playgroud)
如果没有数据而不是拨号,那么显示Toast通常是一种更好的做法.
if(args != null && args.equals(noData)){
Toast.makeText(context, noData, Toast.LENGTH_LONG).show();
finish();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6099 次 |
| 最近记录: |