2015-10-16 48 views
0

我有一個EditText對象:什麼LayoutParams應該用在AlertDialog中?

EditText textbox = new EditText (this); 
    textbox.setHint (something); 

我想用生成器該視圖添加到AlertDialog

AlertDialog.Builder builder = new AlertDialog.Builder (this); 
    builder.setTitle (R.string.enter_password_name) 
      .setPositiveButton (R.string.save_text, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 

       } 
      }) 
      .setNegativeButton (R.string.cancel_text, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 

       } 
      }); 

我知道,有一種方法setView(int)但我使用API​​ 15,所以我只能用setView(View),這也是爲什麼我創建的代碼視圖的原因。

到目前爲止這麼好,但我現在需要設置LayoutParams的視圖。我應該選擇什麼LayoutParams?我知道在RelativeLayout中使用RelativeLayout.LayoutParams,在LinearLayout中使用LinearLayout.LayoutParams。但是我應該在對話框中使用什麼?

+0

你不需要編程創建佈局使用setView你知道嗎? – tyczj

回答

2

根據源代碼here,alertdialog的根元素是LinearLayout,所以我會建議使用LinearLayout.LayoutParams

0

即使你想setViewview作爲參數,你總是可以在XML中創建您的看法和它充氣使用佈局充氣器,然後將其用作參數。

例如:

View view = getLayoutInflater().inflate(R.layout.yourlayout, null); 
setView(view); 
0

,如果你膨脹的自定義視圖與否要看。

  • 如果你這樣做,你應該使用LayoutParams根據 自定義視圖容器(線性或相對)。
  • 如果您不使用自定義視圖, 可以設置Linear LayoutParams。
相關問題