Пользовательское listview для 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, но не могу понять, что добавить, чтобы использовать мои собственные макеты, listview и listrow. Я смотрел на гидов онлайн, но ничего, что они показывают, похоже, работает на меня. IE Я должен делать что-то неправильно.

EDIT: изменил код, чтобы включить ответ, но не изменил того, что отображается на экране. Ошибок пока нет.

Если у вас есть настраиваемый макет, который вы хотите передать в 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 } });