1

警告ダイアログが次々と表示されることについて質問があります。3 つの警告ダイアログを表示しようとしていますが、3 番目の警告ダイアログが最初に表示されるたびに、この場合は 2 番目の警告ダイアログが 2 番目に表示され、最初の警告ダイアログが常に最後になります。コード順に書いた通りに表示してほしい。コードを検討し、なぜこれが起こっているのか、そして確実な解決策を提案してください。

プライベート静的クラス MyHandler extends Handler {

    MainActivity activity;

    public MyHandler(MainActivity activity){
        this.activity = activity;
    }
    @Override
    public void handleMessage(Message msg) 
    {
        if(activity.connectionToTupleSpace == true)
        {
            activity.showDialog("Dialog 1", "It should be displayed first");
            activity.showDialog("Dialog 2", "It should be displayed second");
            activity.showDialog("Dialog 3", "It should be displayed third");
        }
        else
        {
            Toast.makeText(activity.getBaseContext(), " No connection to Tuple Space Server", Toast.LENGTH_SHORT).show();

        }
    }
};//handler for Thread



private void showDialog(String title, String message)
{
    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    builder.setTitle(title);
    builder.setMessage(message);
    builder.setPositiveButton("OK", null);
    builder.show();
}
4

2 に答える 2

1

それらは正しい順序で表示されています。

最初にダイアログ番号 1 を表示します。次に、番号 1 の上にダイアログ番号 2 を表示します。次に、番号 2 の上にダイアログ番号 3 を表示します。

これは、最後に追加した番号 3 が最初に表示されることを意味します。

したがって、最も簡単な解決策は次のとおりです。順序を逆にして、最初に3を表示し、次に2、次に1を表示します:)

于 2013-08-02T16:19:09.680 に答える
0

私が知っているように、あなたのコードでは、MainActivity の 3 つのインスタンスを使用しているため、3 つのアクティビティがあるため、「スタック」を知っていれば、それが合理的であることがわかります。AlertDialogごとに優先度を設定する値を追加する必要があると思います。

于 2013-08-02T16:23:24.493 に答える