【发布时间】:2013-06-05 08:00:44
【问题描述】:
假设我有一些 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 A 上的按钮之前返回到Activity A?所以我想要类似于 GOTO 的行为,当 promtError() 触发时,parse() 不会返回“”并转到 Activity A,就像从未调用过 public void onClick(View v)。
事实上,这段代码的目的是保护应用程序在互联网连接丢失时不崩溃。应用程序有很多地方调用 parse()。 parse() 向/从服务器发送/接收数据。因此,我希望将安全检查添加到 parse(),而不是添加到会调用它的活动中
【问题讨论】:
-
为什么 promtError 是静态的?
-
为什么你不能让 B 类返回错误代码或抛出异常,然后让
ActivityA 通过让 A 显示消息本身来适当地处理这个问题?只是为了澄清,B也是Activity吗?因为我不明白你为什么需要回到ActivityA,如果你从未离开过它? -
B 不是活动。我不在活动 A 中进行对话的原因 - 我有很多活动和对话消息,其原因对于所有活动都是相同的
标签: android android-intent dialog