Android AlertDialog MultiChoiceItems не показывает пользовательский вид

Друзья,

Я не могу установить пользовательское представление для AlertDialog MultiChoiceItems.

AlertDialog.Builder builder = new AlertDialog.Builder(getContext());

builder.setMultiChoiceItems(items.toArray(new CharSequence[items.size()]), selected, this);

ListAdapter adapter = new ArrayAdapter<String>(getContext(), R.layout.spinner, items)
{
    public View getView(int position, View convertView, ViewGroup parent)
    {
        final LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        if (convertView == null)
        {
            convertView = inflater.inflate(R.layout.spinner, null);
        }

        TextView title = (TextView) convertView.findViewById(R.id.aaa);
        title.setText("Yes");

        TextView subtitle = (TextView) convertView.findViewById(R.id.bbb);
        subtitle.setText("KaBooom");

        return convertView;
    }
};

builder.setAdapter(adapter, null);

builder.setOnCancelListener(this);
builder.show();

Я прочитал идентичный вопрос здесь Custom viewview на AlertDialog multichoice, однако я не смог его воспроизвести. MultiChoiceItems заменяют представление по умолчанию, а адаптером пренебрегают.

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>

<TextView
    android:id="@+id/aaa"
    android:singleLine="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="marquee"
    android:textAlignment="inherit"
    android:text="aaa"
    />

<TextView
    android:id="@+id/bbb"
    android:singleLine="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="marquee"
    android:textAlignment="inherit"
    android:text="bbb"
    />

</RelativeLayout>

1 ответ

Может быть, вам следует использовать фрагмент диалога

Другие вопросы по тегам