0

Activity私はいくつかのAを持っていると仮定します。AにはクラスBからActivityメソッドを呼び出すボタンがあります。ブールチェックがあります。true の場合は(eg )を返します。クラスBでの偽の呼び出しの場合。parse()parse()parse()ObjectStringparse()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();
    }

メソッド parse():

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

のボタンを押す前の瞬間に変更promtError()またはA にparse()戻るにはどうすればよいですか? したがって、GOTO と同様の動作が必要です。promtError() が起動すると、parse() は "" を返さず、アクティビティ A に移動します。public void onClick(View v) は呼び出されませんでした。ActivityActivity A

実際、このコードの目的は、インターネット接続が失われたときにアプリケーションがクラッシュするのを防ぐことです。アプリケーションには parse() を呼び出す場所がたくさんあります。parse() は、サーバーとの間でデータを送受信します。したがって、parse()に安全なchackを追加したいと考えていますが、それを呼び出すアクティビティには追加しません

4

1 に答える 1

2

ボタンを押す前に A のアクティビティに戻るには、promtError() をどのようにモード化する必要がありますか?

「ダイアログを閉じるにはどうすればよいですか?」と言いたかったのです。電話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 に答える