Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ListView,其中每个项目都是带有radiobox的ImageView,并且一次可以选择一个项目?_Java_Android_User Interface_Mobile - Fatal编程技术网

Java ListView,其中每个项目都是带有radiobox的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

这件事让我毛骨悚然。我想要一个列表视图,其中列表中的每个项目都是一个ImageView。我希望每个项目旁边都有一个单选按钮,一次只能选择一个项目(即单选模式)。此代码适用于创建带有单选按钮的文本框列表:

    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>