Я борюсь с этой проблемой уже целый день и просто не могу понять, как ее решить.
Итак, у меня есть AlertDialog, где я хочу отобразить список элементов на выбор. Эти элементы должны иметь несколько текстовых представлений, поэтому я не могу полагаться на простой setMultiChoiceItems()
на сборщик, использующий формат по умолчанию.
Я использую свой собственный ArrayAdapter, выполняя это:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Choose details to display");
builder.setAdapter(new ContactAdapter(this, 0, items), null);
Я думал, что мог бы использовать OnClickListener
в качестве второго параметра setAdapter
, но это закрывает диалоговое окно после выбора одного параметра.
Пытаясь исправить это, я добавил setOnClickListener()
в свой ContactsAdapter, когда получаю макет строки, например:
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.contact_row, null);
view.setOnClickListener(new OnClickListener() {....}
Это работает, но я прекращаю получать выделение, когда щелкаю по строке, чего я действительно не хочу.
Есть идеи, как это решить? Я знаю, что мог бы использовать ListActivity, и это было бы легко решить, но я действительно хочу сделать это в диалоге. Спасибо!