如何更改由 AlertDialog Builder setSingleChoiceItems 创建的 RadioButtons 的样式

Koi*_*itt 2 android android-layout

我正在创建一个 AlertDialog,它将显示一个单选按钮列表以供选择。它按照我的需要工作,除了创建它时,单选按钮显示在项目文本的左侧,我希望它们显示在对话框的最右侧

这是我得到的结果(没有足够的声誉来嵌入图像)http://img.ctrlv.in/img/15/09/29/560ab269bad4a.jpg

这是我的代码

AlertDialog.Builder builder = new AlertDialog.Builder(context);
String[] items = new String[]{"1997", "1998", "1999", "2000", "2001"}
builder.setSingleChoiceItems(items, 0, getItemSelectedCallback(false, items));
builder.create().show();
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助。

Koi*_*itt 5

事实证明,这可以通过零重构并且不使用 Spinner 来实现。我必须做的是创建一个数组适配器,将项目转换为自定义布局。

ArrayAdapter<String> adapter = new ArrayAdapter<>(context, R.layout.checked_text_view, items);
builder.setSingleChoiceItems(adapter, 0, getItemSelectedCallback(false, items));
Run Code Online (Sandbox Code Playgroud)

对于自定义布局,我使用了 CheckedTextView

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:checkMark="?android:attr/listChoiceIndicatorSingle"
/>
Run Code Online (Sandbox Code Playgroud)

这样就完成了工作