Java ListView,其中每个项目都是带有radiobox的ImageView,并且一次可以选择一个项目?
这件事让我毛骨悚然。我想要一个列表视图,其中列表中的每个项目都是一个ImageView。我希望每个项目旁边都有一个单选按钮,一次只能选择一个项目(即单选模式)。此代码适用于创建带有单选按钮的文本框列表:Java ListView,其中每个项目都是带有radiobox的ImageView,并且一次可以选择一个项目?,java,android,user-interface,mobile,Java,Android,User Interface,Mobile,这件事让我毛骨悚然。我想要一个列表视图,其中列表中的每个项目都是一个ImageView。我希望每个项目旁边都有一个单选按钮,一次只能选择一个项目(即单选模式)。此代码适用于创建带有单选按钮的文本框列表: ListView listView = ... String [] value = {"test1","test2"}; listView.setAdapter( new ArrayAdapter<String>( th
ListView listView = ...
String [] value = {"test1","test2"};
listView.setAdapter(
new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_single_choice,value
));
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
ListView ListView=。。。
字符串[]值={“test1”,“test2”};
listView.setAdapter(
新阵列适配器(
这个,android.R.layout.simple\u list\u item\u single\u choice,value
));
listView.setChoiceMode(listView.CHOICE\u MODE\u SINGLE);
对于ImageView项,我使用自己的ArrayAdapter实现。在ArrayAdapter对象的getView方法中,我为每个列表行加载以下xml文件:
e、 g
我从前面示例中使用的simple_list_item_single_choice.xml文件中复制了CheckedTextView项。我假设ListView必须查找id为“text1”的项以用于显示选择状态(我在这里只是猜测,因为我无法确定单选按钮的来源)。如果我没有包含CheckedTextView项,我根本看不到任何单选按钮
当我在上面的xml文件中使用自定义适配器时,我可以看到单选按钮,但选择它们却没有任何作用。此外,我还为列表视图实现了选择侦听器,当我单击项目时不会触发该侦听器。我做错了什么?“我可以看到单选按钮,但选择它们却没有任何作用”--您希望看到什么样的行为?“此外,我已经为列表视图实现了选择侦听器,当我单击项目时不会激发。”--选择侦听器在您单击项目时从不激发。当您使用导航控件(d-pad、轨迹球等)选择项目时,它会触发。@Commonware:“您期望的行为是什么?”-我希望radiobox的行为与第一个示例中的相同,在第一个示例中,一次只能打开一个radiobox(即,在所有列表项目中)。在将ImageView作为列表项的一部分时,我如何才能做到这一点?感谢您提供的信息--它极大地澄清了您的问题。很遗憾,我没有答案给你-(好的,谢谢。我现在想做的就是为ListView编写一个单击侦听器,它将切换刚刚选择的列表项上的radiobox,并取消之前选择的列表项上的radiobox。我本来希望ListView能够跟踪这一点,但我看不出我还能做什么。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:gravity="center"
>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:checkMark="?android:attr/listChoiceIndicatorSingle"
android:paddingLeft="6dip"
android:paddingRight="6dip"
/>
<ImageView android:id="@+id/preview"
android:layout_width="75dip" android:layout_height="100dip"
android:scaleType="fitCenter"
android:enabled="true"
android:focusable="false"
/>
</RelativeLayout>