2014-12-06 149 views
0

公共查看getView(最终诠释的立场,观点convertView,一个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代码。感谢您的帮助。

回答

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> 
+0

它们被放置在xml文件中的不同布局中,我可以知道如何制作一个无线电组? – hari 2014-12-06 06:55:02

+0

请编辑你的问题,并把你所有的XML文件。 – 2014-12-06 06:58:32

0

我想,你应该调用无效(),以每个视图,如果你想更新的ListView一些特定项目。但更好的方法是在调用notifyDataSetChanged()之后通过适配器更新项目。