当前位置: 首页 > 知识库问答 >
问题:

我无法取消选中列表视图中的单选按钮

杨无尘
2023-03-14

公共视图getView(最终int位置,视图转换视图,ViewGroup父){

            final Constructor row = buttonList.get(position);
            LayoutInflater inflater = LayoutInflater.from( context );
            View v = inflater.inflate( R.layout.breakfastitems_view, parent, false );
            RelativeLayout relative1 = (RelativeLayout)v.findViewById(R.id.relative1);
            final RadioButton chbox=(RadioButton)v.findViewById(R.id.rb1);
            final RadioButton rb2=(RadioButton)v.findViewById(R.id.rb2);
            chbox.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v) {
                RadioButton chbox = (RadioButton)v;
                if(chbox.isChecked()){
                    Boolean value=false;    
                rb2.setChecked(value);

                rb3.setChecked(false);
                rb4.setChecked(false);
                rb5.setChecked(false);
                rb6.setChecked(false);
                }
                selected_total.set(position, selected_cost.get(position));
                selectprice.setText(selected_total.get(position));
            }
         });
        rb2.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v) {
                if(position==1){
                chbox.setChecked(false);
                rb3.setChecked(false);
                rb4.setChecked(false);
                rb5.setChecked(false);
                rb6.setChecked(false);
                }
                selected_total.set(position, selected_cost.get(position));
                selectprice.setText(selected_total.get(position));
            }
         });

这是我的XML文件代码,

  <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
       android:layout_height="match_parent"
          android:orientation="vertical" >

   <RelativeLayout
    android:id="@+id/relative1"
    android:layout_width="match_parent" 
    android:layout_height="60dp">
    <TextView android:id="@+id/item" 
      android:layout_width="fill_parent"    
      android:layout_height="50dp" 
      android:gravity="center_vertical" 
      android:text="TextView" 
      android:textColor="#000000"
       android:textSize="16dp"/>
    <TextView android:id="@+id/price_text"
          android:layout_width="70dp" 
          android:layout_height="wrap_content" 
          android:layout_alignBaseline="@+id/item"
          android:layout_alignBottom="@+id/item" 
          android:layout_alignParentRight="true"
           android:gravity="center"
         android:text="$3.20"
          android:textColor="#000000"/>
    <RadioButton android:id="@+id/rb1" 
       android:layout_width="40dp"
       android:layout_height="40dp" 
     android:layout_alignBaseline="@+id/item"
     android:layout_alignBottom="@+id/item" 
     android:layout_toLeftOf="@+id/price_text"/>

   </RelativeLayout>

  <RelativeLayout
    android:id="@+id/relative2"
    android:layout_width="match_parent"
    android:layout_height="60dp" >

    <TextView
        android:id="@+id/item2"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:gravity="center_vertical"
        android:text="TextView"
        android:textColor="#000000"
        android:textSize="16dp" />

    <TextView
        android:id="@+id/price_text2"
        android:layout_width="70dp"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/rb2"
        android:layout_alignBottom="@+id/rb2"
        android:layout_alignParentRight="true"
        android:gravity="center"
        android:text="$3.20"
        android:textColor="#000000" />

    <RadioButton
        android:id="@+id/rb2"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@+id/price_text2" />

        </RelativeLayout>
    </LinearLayout>

我无法取消选中这个单选按钮。我已经发布了我的Java代码和xml代码。感谢提前帮助。

共有2个答案

史鸿运
2023-03-14

我认为,如果要更新ListView中的某些特定项,应该对每个视图调用invalidate()。但更好的方法是在调用notifyDataSetChanged()后通过适配器更新项。

戴博
2023-03-14

不要试图用实用主义的方式去检查和取消检查单选按钮。。。只需将所有单选按钮放在XML行布局文件中的一个RadioGroup

  <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:padding="@dimen/marginTen" >

            <RadioGroup
                android:id="@+id/radioGroup1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <RadioButton
                    android:id="@+id/radioButton1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="RadioButton" />

                <RadioButton
                    android:id="@+id/radioButton2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="RadioButton" />

                <RadioButton
                    android:id="@+id/radioButton3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="RadioButton" />
            </RadioGroup>
        </LinearLayout>
 类似资料:
  • 我知道有许多解决方案可以解决这个问题,但我并不是解决这个问题的正确方法,当一个复选框被选中时,我会为它分配一个ID,并将其添加到一个数组中,但当向下滚动时,该复选框被取消选中,但ID存储在数组中,如果它被选中,我希望它保持选中状态。 我的适配器类是。

  • 问题内容: 在使用jQuery提交AJAX表单后,我想取消选中单选按钮。我有以下功能: 借助此功能,我可以清除文本框中的值,但不能清除单选按钮的值。 顺便说一句,我也尝试过,但是那没用。 问题答案: 要么(普通js) 或(jQuery)

  • 问题内容: 当显示一组JRadioButton时,最初不会选择任何一个(除非您以编程方式强制执行此操作)。我希望即使在用户已经选择一个按钮之后,也可以将按钮放回该状态,即,不应选择任何按钮。 但是,使用通常的嫌疑人并不能达到预期的效果:在每个按钮上调用’setSelected(false)’不起作用。有趣的是,当按钮没有放入ButtonGroup时,它 确实可以 工作-不幸的是,对于JRadioB

  • 我有一个带有textView的列表视图,每行都有一个按钮,我试图通过单击按钮而不是通过单击整行来获取文本view方法:(AdapterView arg0,View v,int position,long arg3)不适用于按钮单击。 这就是我如何通过单击列表视图的行来选择项目,但是,我想通过单击按钮而不是整行来选择项目:

  • 我正在尝试通过文本选择列表中的条目。li条目也有ID,但我想用文本代替。 我有以下html片段: Leier kommunal bolig Leier bolig 选项一:我试着这样做: 我试过“值”和其他选项。但我总是得到“指定了一个无效或非法的选择器”。 但显然有问题,因为它没有导航到页面上的列表条目,并且该选项没有被选中。 另外,如果我使用.sendKeys(keys.enter)而不是.c

  • 本文向大家介绍Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题,包括了Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题的使用技巧和注意事项,需要的朋友参考一下 Vue.js可以很方便的实现数据双向绑定,所以在处理表单,人机交互方面具有很大的优势。下面给大家介绍Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题。 摘要: 表单标签取值问题中,单选按钮、复选按钮