1

私はこのダイアログスニペットを手に入れました:

String message="This will be my message";

    AlertDialog.Builder alt_bld = new AlertDialog.Builder(this);
    alt_bld.setMessage(message)
    .setCancelable(false)
    .setPositiveButton("OK", new DialogInterface.OnClickListener() 
    {
        public void onClick(DialogInterface dialog, int id) 
        {


             ProgressDialog dialog1 = ProgressDialog.show(CombatActivity.this, "Loading", 
                     "Pushing OK...", true);


        Intent i = new Intent();
        i.setClass(MyFirstActivity.this, MySecondActivity.class);
        startActivity(i);
        finish();



        }
    });

    AlertDialog alert = alt_bld.create();
    // Title for AlertDialog
    alert.setTitle("Nyertél.");
    // Icon for AlertDialog
    alert.setIcon(R.drawable.icon);
    alert.show();

私の質問は次のとおりです。これらのいずれかで.hide()または.dismiss()を呼び出す必要がありますか?メッセージテキストは動的に読み取られます。表示されるダイアログごとに個別のインスタンスは必要ありません。メッセージが更新されたものが1つだけ必要です。

では、いつ、どのように削除または却下を呼び出す必要がありますか?

4

2 に答える 2

2

ええ、電話をかけるdismiss() 前に電話をかける必要がありますfinish()。そうしないと、ダイアログがバックグラウンドのままになり、他のアクティビティを開始しようとしたときに問題が発生する可能性があります。

于 2011-11-09T12:10:40.950 に答える
1

Androidではhide()AlertDialog単に画面から消えるようにすることを意味します。ただし、それでも保持され、に添付されContextます。したがって、からデタッチするには、dismiss()またはメソッドを呼び出す必要があります。それ以外の場合は、「リークウィンドウエラー」が発生します。cancel()Context

于 2017-08-17T10:33:36.357 に答える