2012-04-28 9 views
5

AlertDialogにカスタムリストビューを設定しようとしていますが、エラーなしで表示または実行されないようです。AlertDialogのカスタムリストビュー

private void buildDialog(){ 

     int selectedItem = -1; //somehow get your previously selected choice 
     LayoutInflater inflater = ((LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)); 
     View customView = inflater.inflate(R.layout.listview, null, false); 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setView(customView); 
     builder.setTitle("Select Weapon").setCancelable(true); 
     builder.setSingleChoiceItems(inventory, selectedItem, "Desc", new DialogInterface.OnClickListener() { 

      @Override 
      public void onClick(DialogInterface dialog, int which) 
      { 
       ListView lv = ((AlertDialog) dialog).getListView(); 
       itemId = lv.getAdapter().getItemId(which); 
       new changeEQ().execute(); 
      } 
     }); 



     dialog = builder.create(); 
    } 

これが私のAlertDialogですが、私のカスタムレイアウト、使用するリストビュー& listrowを取得するために追加するかを把握することはできません。私はオンラインのガイドを見回してきましたが、何も表示されないものは私にとってはうまくいくようです。私は間違ったことをする必要があります。

EDIT:答えを含むコードが変更されましたが、画面に表示される内容に変更はありません。エラーはなく、見た目の変化はありません。

+0

あなたがのためにLogcat出力を提供してください可能性エラーが発生しました – Toorop

答えて

10

あなたがあなたのAlertDialogに渡すカスタムレイアウトを持っている場合は試してみてください。

LayoutInflater inflater = ((LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE)); 
View customView = inflater.inflate(R.layout.custom_dialog, null, false); 
AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setView(customView); 

をあなたがリスナーを定義したい場合は試してみてください。

ListView list = (ListView) customView.findViewById(R.id.listView1); 
list.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     // Do as you please 
    } 
}); 
+0

setSingleChoiceItemsを取り出して、それがアクティビティリストビューであるかのようにalertDialogを処理する必要がありますか? – maebe

+0

それは最も簡単かもしれません。 – Sam

関連する問題