2012-03-09 34 views

答えて

8

もちろん、Dialog.setContentView()を使用すると、ダイアログのコンテンツを任意のレイアウトに設定できます。

Dialog dialog = new Dialog(this); 
    dialog.setContentView(R.layout.yourLayoutId); 
    dialog.show(); 

自分あなたはそれにしたいとあなたのレイアウトファイルの名前を渡して、あなたのダイアログでsetContentViewを呼び出すボタンがあり、垂直のLinearLayoutとレイアウトファイル作成します。

あなたはAlertDialogにdeadsetている場合は、APIレベル1カスタムを作成する理由はないので、これを行いbuilder.setView()と似たような

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View layout = inflater.inflate(R.layout.yourLayoutId, (ViewGroup) findViewById(R.id.yourLayoutRoot)); 
    AlertDialog.Builder builder = new AlertDialog.Builder(this) 
    .setView(layout); 
    AlertDialog alertDialog = builder.create(); 
    alertDialog.show(); 
+0

ありがとうございました! – Ahmed

6

がsetItemsがなされてきた()の呼び出しを行うことができますアイテムのルック・アンド・フィールを変更する必要がある場合を除き、

CharSequence[] items = {"Foo", "Bar", "FooBar"}; 
new AlertDialog.Builder(activity) 
.setTitle("Choose a widget") 
.setItems(items, new DialogInterface.OnClickListener() 
{ 
    @Override 
    public void onClick(DialogInterface dialog, int which) 
    { 
     switch(which) 
     { 
      case FOO: 
      // foo case 
      break; 

      .... 
     } 
    } 
} 
.create().show(); 
+4

これに関する1つの注釈:アラートでsetMessageを呼び出すことはできません。項目が表示されない場合は、アラートでsetMessageを呼び出すことはできません。 –

+1

グレートコード。私は最初に水平のボタンを作成すると考えていたので、垂直ボタンを作成することに言及する必要があります。 – yshahak

+0

良い点ですが、どのようにこれらのスタイルを設定しますか? – Calin

関連する問題