2011-10-14 5 views
10

レイアウトでカスタムアダプタを使用してリストビューを使用しています。 今、私はそのレイアウトを含むレイアウトを私のalertdialogに持ってきています。 私はリストを含まないシンプルなレイアウトをこのコードで警告ダイアログに持ち込みようとしましたが、それはうまくいきました。 しかし、私はレイアウトを含むリストをalertdialogに持ち込むことができません。アラートダイアログでリストビューを含むレイアウトをどのように膨張させることができますか?

  AlertDialog.Builder dialog = new AlertDialog.Builder(this); 
      dialog.setView(getLayoutInflater().inflate(R.layout.smill, null)); 
      dialog.setIcon(R.drawable.androidsmile); 
      dialog.setInverseBackgroundForced(true); 


      dialog.setTitle("Select smiley"); 
      dialog.setPositiveButton("Cancel", null); 
      dialog.show(); 
+1

間違ったアプリケーションで起こって何手の込んだことができます。

はあなたのような何かをする必要がありますか? 強制的に閉じるか、リストビューは表示されません。 –

答えて

14

あなたがしているのは、警告ダイアログに表示された内容を膨らませるだけです。あなたはそのリストビューにアダプタを設定していないので、もちろん空でないので動作していないように見えます。

View view = getLayoutInflater().inflate(R.layout.smill, null) 
ListView listView = (ListView) view.findViewById(R.id.listView); 
YourCustomAdapter adapter = new YourCustomAdapter(parameters...); 
listView.setAdapter(adapter); 

AlertDialog.Builder dialog = new AlertDialog.Builder(this); 
dialog.setView(view); 
... 
... 
dialog.show(); 
+2

layoutInflaterのルートビューとしてnullを渡さないようにします。これがあなたのアダプターの内部で行われた場合、あなたはrootviewかconvertviewか、この警告ダイアログをホストしているビューを渡すことができます – Odaym

関連する問題