0

假设我有一些ActivityA。A具有从 B 类Activity调用方法的按钮。具有布尔检查。如果为真,则返回一个(例如);如果是B 类中的错误调用。parse()parse()parse()ObjectStringparse()promtError()

活动一:

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()返回A ?所以我想要类似于 GOTO 的行为,当 promtError() 触发时, parse() 不会返回“”并转到 Activity A,就像从未调用过 public void onClick(View v) 一样。ActivityActivity A

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

4

1 回答 1

2

在我按下按钮之前,我应该如何 modefiy promtError() 返回到 A 的活动?

您想说“我如何关闭对话框?”。致电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();
}
于 2013-06-05T08:08:02.760 回答