我无法取消选中listview中的单选按钮

时间:2014-12-06 06:45:59

标签: java android eclipse

public View getView(final int position,View convertView,ViewGroup parent){

            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 个答案:

答案 0 :(得分:0)

不要尝试以实际方式检查和取消选中radioButton ...只需将所有单选按钮放在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>

答案 1 :(得分:0)

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