簡體   English   中英

以編程方式在AlertDialog中自定義按鈕

[英]Custom button in AlertDialog programmatically

經過大量關於stackoverflow和google的研究,我真的發現我的問題沒有問題。 好吧,我想在對話框的右上方創建一個高度為50且寬度為50的按鈕。 好吧,我可以毫無問題地設置高度,但是寬度不起作用。 我嘗試創建linearLayout,但從未考慮過參數。 這是我的代碼(高度設置正確):

private void hello(){
    Button button = new Button(this);

    button.setMinimumWidth(0);
    button.setWidth(50);
    button.setMinimumHeight(0);
    button.setHeight(50);

    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v){
            sayHello();
        }
    });

    new AlertDialog.Builder(this) 
            .setTitle("Hello world")
            .setView(button)
            .setPositiveButton("ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton){
                    Toast.makeText(getApplicationContext(), "Click !", 
                    Toast.LENGTH_SHORT).show();
                    hello();
                }
            })

            .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton){
                }
            })
            .show();
}

我嘗試了:

        button.setLayoutParams(new LinearLayout.LayoutParams(50, 50));

沒有任何成功。

與 :

LinearLayout.LayoutParams rlp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
                                    LinearLayout.LayoutParams.WRAP_CONTENT);
    rlp.height = 50;
    rlp.width = 50;

    button.setText("i");
    button.setLayoutParams(rlp);

而且也不起作用...

我真的不明白發生了什么,請您能幫我嗎?

我精確地說,我沒有任何xml,僅在Java中。

我最終決定創建自己的警報對話框,以根據需要對其進行自定義。 我必須創建一個xml文件並使用充氣機。 setHeight起作用而不是setWidth起作用的原因將永遠是個謎...

還是要謝謝你的幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM