如何在方法完成之前返回初始活动?

时间:2013-06-05 08:00:44

标签: android android-intent dialog

假设我有一些Activity A. Activity A有一个按钮,它从类B调用方法parse()parse()有布尔检查。如果是,则parse()返回Object(例如String);如果它是假的parse()在B类中调用promtError()

活动A:

public class A extends Activity {
 //
 // activity body
 //

 public void onClick(View v){
 String s = B.parse();
 Intent i = new Intent(getApplicationContext(),
                    AddToCheckActivity.class);
 i.putExtra("tip", s);
 startActivity(i);
 finish();
}
}

其中promtError()

public static void promtError(){
        context = MyApplication.getAppContext();
        AlertDialog.Builder builder = new AlertDialog.Builder(MyApplication.getAppContext());
        builder.setMessage("Потеряна связь с сервером. Попробуйте позже.")
               .setCancelable(false)
               .setPositiveButton("закрыть", new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                        //do things
                   }
               });
        AlertDialog alert = builder.create();
        alert.show();
    }

方法解析():

public String parse(){
    if(a == 1) return generate();
    else promtError();
    return "";
}

在我按下promtError()上的按钮之前,我应该如何修改parse()Activity以返回Activity A A?所以我希望行为类似于GOTO,当promtError()触发时,parse()不会返回“”并转到活动A,就像从未调用public void onClick(View v)一样。

实际上,此代码的目的是在丢失Internet连接时保护应用程序免于崩溃。应用程序有许多地方调用parse()。 parse()向/从服务器发送/接收数据。因此,我希望将safty chack添加到parse(),而不是将其称为

的活动

1 个答案:

答案 0 :(得分:2)

  

我应该怎样在我按下按钮之前模式promfError()返回A的Activity?

您想说“如何解除对话框?”。致电cancel()dismiss()

public static void promtError() {
    context = MyApplication.getAppContext();
    AlertDialog.Builder builder = new AlertDialog.Builder(MyApplication.getAppContext());
    builder.setMessage("Потеряна связь с сервером. Попробуйте позже.")
            .setCancelable(false)
            .setPositiveButton("закрыть", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            dialog.dismiss();
        }
    });
    AlertDialog alert = builder.create();
    alert.show();
}