2

画面にダイアログボックスがあります。画面にタッチするとダイアログボックスが閉じます。ダイアログボックスが外側のタッチで閉じないようにしたい.私のコードを以下に示します:-

public class Dialogue extends Activity{

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialogue);
        this.setFinishOnTouchOutside(false);
        displayDialogue();

    }
    private void displayDialogue(){
        final AlertDialog.Builder myDialogue = new AlertDialog.Builder(this);
        myDialogue.setMessage("Please check your voice input output settings.It should be ON" );
        TextView messageView = new TextView(this);
        messageView.setGravity(Gravity.CENTER);
        myDialogue.setView(messageView);
        myDialogue.setPositiveButton("OK",  new DialogInterface.OnClickListener()
        {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                Intent i = new Intent(Dialogue.this, MainActivity.class);
                startActivity(i);
                finish();
            }
        });

        AlertDialog dialog = myDialogue.create();
        dialog.show();
    }
4

6 に答える 6

3

setCancelable(boolean cancelable) : ダイアログがキャンセル可能かどうかを設定します。続きを読む.

myDialogue.setCancelable(false);
于 2013-06-26T06:03:35.590 に答える
3

cancelable を false に設定するだけで、ダイアログの外側に触れたときにそのまま開いたままになります。コードでこれを試してください:

myDialogue.setCancelable(false);
于 2014-03-27T10:00:08.073 に答える
2

キャンセル可能なプロパティを false に設定します

private void displayDialogue(){
final AlertDialog.Builder myDialogue = new AlertDialog.Builder(this);
myDialogue.setMessage("Please check your voice input output settings.It should be ON" );
TextView messageView = new TextView(this);
messageView.setGravity(Gravity.CENTER);
myDialogue.setView(messageView);

myDialogue.setCancelable(false);

myDialogue.setPositiveButton("OK",  new DialogInterface.OnClickListener()
{

    @Override
    public void onClick(DialogInterface dialog, int which) {
        Intent i = new Intent(Dialogue.this, MainActivity.class);
        startActivity(i);
        finish();
    }
});

AlertDialog dialog = myDialogue.create();
dialog.show();
}
于 2013-06-26T06:11:21.010 に答える
2

この行を追加

myDialogue.setCancelable(false);

お役に立てれば..

于 2013-06-26T06:03:03.583 に答える
1

inisdedisplayDialog()メソッドの後.setMessage()に、次の行を追加します。

myDialogue.setCancelable(false);
于 2013-06-26T06:07:00.540 に答える
1

おそらくすでにこれを取得していますが、将来の人々にとってはこれがうまくいきました。ここに示すように、外部のタッチをオーバーライドしてダイアログで何もしないようにすることができます

于 2014-12-03T16:19:52.900 に答える