1

アラート ダイアログ ボックスをデバイスの画面サイズに合わせて表示したい。このリンクから解決策を得ました 警告ダイアログを画面サイズの 90% にするにはどうすればよいですか? そこにある解決策を使用します。問題なく動作しますが、アラート メッセージが非常に小さいサイズで表示されます。横向きではメッセージを理解することさえできません。次のコードを使用しました。

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(R.string.app_description).setPositiveButton(
                    "Ok", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            dialog.dismiss();
                        }
                    });
            builder.Title(title);

            Dialog d = builder.setView(new View(this)).create();
            WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
            lp.copyFrom(d.getWindow().getAttributes());
            lp.width = WindowManager.LayoutParams.FILL_PARENT;
            lp.height = WindowManager.LayoutParams.FILL_PARENT;
            d.show();
            d.getWindow().setAttributes(lp);

ダイアログウィンドウに正しく表示されるようにメッセージを設定するにはどうすればよいですか?

よろしくお願いします

4

2 に答える 2

1

デフォルトのimplement-ionでは、テキストサイズを設定できません。あなたは一つの簡単なことをすることができます。XMLを作成し、そのXMLを拡張して、ビルダービューに渡します。

   builder.setView(view)  

ダイアログにビューを設定しているだけです。そのビューがすべてのタッチを処理します。また、テキストサイズを含むビューの高さと幅をxmlで指定できます。

于 2012-05-03T13:25:24.413 に答える
1

このコードを確認して、それが本当に達成したいことかどうか教えてください。

 AlertDialog.Builder builder = new AlertDialog.Builder(this);

    // Creates textview
    TextView text = new TextView(this);  
    text.setText("Hello This text");  
    text.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    text.setTextSize(20);        
    text.setGravity(Gravity.CENTER);

    //Creates a linearlayout layout and sets it with initial params
    LinearLayout ll = new LinearLayout(this);
    ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    ll.setGravity(Gravity.CENTER);
    ll.addView(text);  //adds textview to llayout

    builder.setMessage("Title").setPositiveButton(
            "Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    dialog.dismiss();
                }
            }); 

    Dialog d = builder.setView(ll).create();   

    //Fills up the entire Screen
    WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
    lp.copyFrom(d.getWindow().getAttributes());
    lp.width = WindowManager.LayoutParams.FILL_PARENT;
    lp.height = WindowManager.LayoutParams.FILL_PARENT;
    d.show();
    d.getWindow().setAttributes(lp);
于 2012-05-03T13:58:30.477 に答える