【问题标题】:howto group radio buttons in a custom adapter?如何在自定义适配器中对单选按钮进行分组?
【发布时间】:2011-03-28 19:35:22
【问题描述】:

我的问题类似于this question,由于我无法找到令人满意的答案,我想明确提出我的问题。

我有一个自定义适配器,它接受一个字符串数组,并且必须用该数组填充列表(在我的 ListActivity 类中定义)。现在,每一行的布局都有一个文本视图和一个单选按钮,如图所示

layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" 
android:layout_height="wrap_content">
<TextView android:text="@+id/word" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:id="@+id/word"
    android:textSize="30px">
</TextView>
<RadioButton
    android:id="@+id/selection"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="4px"
    android:layout_marginRight="10px"
    android:layout_alignParentRight="true"
    android:layout_x="27px"
    android:layout_y="8px">
</RadioButton>

到目前为止一切正常。我可以使用单选按钮呈现每一行。 我正在寻找的是一种可以将这些单选按钮组合在一起以执行单个选择的方法。 这是我正在制作的一个应用程序所必需的,该应用程序有一个带有四个选项作为答案的问题。 另外请告诉我这是否是解决此类问题的正确方法。 提前致谢

【问题讨论】:

  • 看看我编辑的答案

标签: android listview radio-button listactivity listadapter


【解决方案1】:

我也可以更清楚。无论如何,您最终组装的 XML 需要看起来像这样。您可以在代码中执行此操作,只要您正在构建的内容按原样返回就可以了。每个 RadioButton 必须位于 RadioGroup 容器内。

<RadioGroup
            android:id="@+id/rg_configup1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="vertical"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"
            >
            <RadioButton
                android:id="@+id/rb_configup1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Sales"
                android:layout_centerVertical="true"
                android:layout_centerHorizontal="true"
                >
            </RadioButton>
            <RadioButton
                android:id="@+id/rb_configup2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Regional"
                android:layout_above="@+id/rb_configup1"
                android:layout_alignLeft="@+id/rb_configup1"
                >
            </RadioButton>
            <RadioButton
                android:id="@+id/rb_configup3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Global"
                android:layout_above="@+id/rb_configup2"
                android:layout_alignLeft="@+id/rb_configup1"
                >
            </RadioButton>
            <RadioButton
                android:id="@+id/rb_configup4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Ad-hoc"
                android:layout_above="@+id/rb_configup3"
                android:layout_alignLeft="@+id/rb_configup1"
                >
            </RadioButton>
        </RadioGroup>

这是否有意义,或者您是否尝试在 XML 以外的其他方式中执行此操作?

【讨论】:

  • 我之前尝试过这个。这不会对单选按钮进行分组。我通过在我的自定义适配器中使用 (RadioButton) view.findViewById(R.id.selection) 来使用单选按钮。使用上面的代码不会对我的按钮进行分组。我仍然可以一起选择所有这些
  • 这是我用来在任何时候只允许选择四个单选按钮之一的方法。这个对我有用。要将屏幕上的单选按钮分组,我正在使用相对布局
  • 我正在使用与事件监听器相同的处理,并且我的屏幕上有四个单选按钮。
  • 我再次尝试这样做,但仍然无法正常工作,我仍然可以选择所有选项。您能否发布一个代码 sn-p 显示您实际上如何使用您在您提供的代码中定义的单选按钮。
  • 看,如果我使用 radiobutton.settext(text) 方法来设置按钮的文本,它工作正常。但是在适配器中,我有一个单独的文本视图和每一行的单选按钮,我需要将这些不同行的单选按钮组合在一起。我希望我现在把问题说得更清楚了。
猜你喜欢
  • 2013-02-06
  • 2012-02-14
  • 2011-11-01
  • 2013-06-14
  • 2013-01-25
  • 2013-06-02
  • 1970-01-01
  • 2012-06-12
  • 1970-01-01
相关资源
最近更新 更多