我刚刚看到以下link符合我的需求,我正努力找到同样适合我的listview的东西。希望有人能够对我有所了解
这就是链接:
android:choiceMode="singleChoice"
设置 listview
只是为了设置单个单选按钮选择
现在我有类似于上面的列表视图,但有一些图像和文本视图,没什么特别的。
这是我的列表视图:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background ="#CCCCCC">
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:divider="#3366CC"
android:dividerHeight="2dp"
android:choiceMode="singleChoice"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_alignParentBottom="true">
<View
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_marginLeft="3dip"
android:layout_marginRight="3dip"
android:background="?android:attr/dividerVertical"
android:layout_alignParentTop="true"/>
<View
android:id="@+id/divider"
android:layout_width="1dip"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:background="?android:attr/dividerVertical"
android:layout_centerHorizontal="true"/>
<Button
android:id="@+id/btnPrevious"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@id/divider"
android:background="@drawable/buttons"
android:text="Previous"
android:layout_alignParentBottom="true"
android:textSize="20sp"
android:textColor="#4285f4"/>
<Button
android:id="@+id/btnNext"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@drawable/buttons"
android:text="Next"
android:layout_alignParentBottom="true"
android:layout_toRightOf="@id/divider"
android:textSize="20sp"
android:textColor="#4285f4"/>
</RelativeLayout>
</LinearLayout>
现在我的问题是我无法在它们旁边看到无线电按钮,如上面的链接所示。
这是我的row.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/photo"
android:layout_width="150dip"
android:layout_height="100dip"
android:paddingRight="15dp"
android:paddingLeft="15dp"/>
</LinearLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginLeft="160dp"
android:layout_marginTop="10dp"
android:descendantFocusability="blocksDescendants">
<TextView android:id="@+id/name"
android:textSize="14sp"
android:textStyle="bold"
android:textColor="#000000"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/itemDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/name"
android:focusable="false"/>
<TextView android:id="@+id/price"
android:textSize="19sp"
android:textStyle="bold"
android:textColor="#003399"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/itemDescription"/>
</RelativeLayout>
</RelativeLayout>
答案 0 :(得分:1)
您链接的示例使用android.R.layout.simple_list_item_single_choice
作为行。你不是。单选按钮显示,因为示例正在使用android.R.layout.simple_list_item_single_choice
singleChoice
ListView
。仅singleChoice
不会添加单选按钮。
您需要为实现View
界面的行创建(或查找)自定义Checkable
并在其中包含合适的单选按钮,方法是直接使用RadioButton
或通过使用CheckedTextView
。
例如this blog post shows a CheckedLinearLayout
,它利用您提供的CheckedTextView
提供Checkable
界面来处理singleChoice
ListView
。
答案 1 :(得分:0)
如果要从列表视图中的所有条目中选择单行,则不要使用复选框。仅使用radiobutton。不要使用单一选择列表视图,因为它不支持自定义行,它只支持android默认布局,即android.R.layout.simple_list_item_single_choice。因此,最好在每一行上使用radiobutton创建自定义列表视图。并通过您的代码尝试管理单一选择。我认为这会帮助你更好地工作。如果您需要更多帮助,请告诉我。