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

时间:2015-09-29 16:57:00

标签: 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();

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

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

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

对于自定义布局,我使用了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"
/>

这就完成了工作