2013-02-21 91 views
1

我正在研究将某些json解析为listview(背景)的应用程序。我目前正试图处理数据无法填充列表视图时的错误。当按下后退按钮时完成活动(警报对话框)

我已经如下面的代码中

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(); 

      } 


     } 

这工作正常,但如果我点击后退按钮,它会导致返回到一个无人居住的空列表视图中创建一个警告对话框中onPostExecute方法来处理这个。

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

我也尝试覆盖onBackPressed方法,但它没有奏效。

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

有什么想法?

+0

尝试添加对警报的监听器接收取消或罢免行动 – njzk2 2013-02-21 12:19:44

回答

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

}); 

onCancel如果你的对话框是取消上后退按钮时,显示其压被激发。

,或者使用时如果按一些按钮或后退按钮

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

在对话框关闭不管将被称为OnDismissListener,它通常是一个更好的做法,以显示敬酒,如果没有数据,而不是dialg。

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

第一选择完美的作品谢谢。顺便说一下,为什么更好的做法是展示敬酒而不是对话。我选择了对话框,因为它看起来更好。 – AndroidEnthusiast 2013-02-21 13:13:06

相关问题