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代码。请提前获取帮助。
答案 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()调用后通过适配器更新项目。