如何取消选中同一布局中不同列表视图中的单选按钮。?
How to uncheck radio button in different listview in same layout.?
我已经解决了很多关于单选按钮的问题,但这在我脑海中已经存在很多天了。我在不同的列表视图中有 5 个单选按钮,请告诉我如何在访问其他单选按钮时取消选中任何单选按钮并获取所选单选按钮的值。
以下是代码。
custom_dialogue.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:ignore="HardcodedText,RtlHardcoded,NestedWeights,UselessParent" >
<LinearLayout
android:layout_width="350dp"
android:layout_height="400dp"
android:background="#000000"
android:orientation="vertical"
android:weightSum="8" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#E3EBED"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:text="Screen timeout"
android:textColor="#449BA4"
android:textSize="21sp" />
</LinearLayout>
<RadioGroup
android:id="@+id/rg_all"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#F5F5F5"
android:orientation="horizontal"
android:weightSum="10" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:layout_weight="9"
android:text="15 seconds"
android:textColor="#000000"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<RadioButton
android:id="@+id/rb_15sec"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#F5F5F5"
android:orientation="horizontal"
android:weightSum="10" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:layout_weight="9"
android:text="30 seconds"
android:textColor="#000000"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<RadioButton
android:id="@+id/rb_30sec"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#F5F5F5"
android:orientation="horizontal"
android:weightSum="10" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:layout_weight="9"
android:text="1 minute"
android:textColor="#000000"
android:textSize="18sp" />
<RadioButton
android:id="@+id/rb_1min"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#F5F5F5"
android:orientation="horizontal"
android:weightSum="10" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:layout_weight="9"
android:text="2 minutes"
android:textColor="#000000"
android:textSize="18sp" />
<RadioButton
android:id="@+id/rb_2min"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#F5F5F5"
android:orientation="horizontal"
android:weightSum="10" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:layout_weight="9"
android:text="5 minutes"
android:textColor="#000000"
android:textSize="18sp" />
<RadioButton
android:id="@+id/rb_5min"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:checked="true" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#F5F5F5"
android:orientation="horizontal"
android:weightSum="10" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:layout_weight="9"
android:text="10 minutes"
android:textColor="#000000"
android:textSize="18sp" />
<RadioButton
android:id="@+id/rb_10min"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1" />
</LinearLayout>
</RadioGroup>
<LinearLayout
android:id="@+id/ll_cancel"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#C9DCE0"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Cancel"
android:textColor="#000000"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
CustomDialogue.java
package com.example.coustomdialogue;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
import android.widget.Toast;
public class CustomDialogue extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.custom_dialogue);
final RadioGroup rg = (RadioGroup) findViewById(R.id.rg_all);
final RadioButton rb1 = (RadioButton)findViewById(R.id.rb_10min);
final RadioButton rb2 = (RadioButton)findViewById(R.id.rb_15sec);
final RadioButton rb3 = (RadioButton)findViewById(R.id.rb_1min);
final RadioButton rb4 = (RadioButton)findViewById(R.id.rb_2min);
final RadioButton rb5 = (RadioButton)findViewById(R.id.rb_30sec);
final RadioButton rb6 = (RadioButton)findViewById(R.id.rb_5min);
rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if(checkedId == R.id.rb_10min){
rg.clearCheck();
rb2.setChecked(false);
rb3.setChecked(false);
rb4.setChecked(false);
rb5.setChecked(false);
rb6.setChecked(false);
}else if(checkedId == R.id.rb_15sec){
rg.clearCheck();
rb1.setChecked(false);
rb3.setChecked(false);
rb4.setChecked(false);
rb5.setChecked(false);
rb6.setChecked(false);
}else if(checkedId == R.id.rb_1min){
rg.clearCheck();
rb2.setChecked(false);
rb4.setChecked(false);
rb1.setChecked(false);
rb5.setChecked(false);
rb6.setChecked(false);
}else if(checkedId == R.id.rb_2min){
rg.clearCheck();
rb2.setChecked(false);
rb3.setChecked(false);
rb5.setChecked(false);
rb1.setChecked(false);
rb6.setChecked(false);
}else if(checkedId == R.id.rb_30sec){
rg.clearCheck();
rb2.setChecked(false);
rb3.setChecked(false);
rb4.setChecked(false);
rb6.setChecked(false);
rb1.setChecked(false);
}else{
rg.clearCheck();
rb2.setChecked(false);
rb2.setChecked(false);
rb3.setChecked(false);
rb4.setChecked(false);
rb5.setChecked(false);
rb1.setChecked(false);
}
}
});
}
}
我得到了以下内容的真正答案 我解决了我的问题,因为我在每个单选按钮上使用了 Click 事件。每当我当时单击单选按钮时,我都会将选中的更改为取消选中(如果有)。无需使用 RadioGroup。
希望对大家有帮助。
我已经解决了很多关于单选按钮的问题,但这在我脑海中已经存在很多天了。我在不同的列表视图中有 5 个单选按钮,请告诉我如何在访问其他单选按钮时取消选中任何单选按钮并获取所选单选按钮的值。 以下是代码。
custom_dialogue.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:ignore="HardcodedText,RtlHardcoded,NestedWeights,UselessParent" >
<LinearLayout
android:layout_width="350dp"
android:layout_height="400dp"
android:background="#000000"
android:orientation="vertical"
android:weightSum="8" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#E3EBED"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:text="Screen timeout"
android:textColor="#449BA4"
android:textSize="21sp" />
</LinearLayout>
<RadioGroup
android:id="@+id/rg_all"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#F5F5F5"
android:orientation="horizontal"
android:weightSum="10" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:layout_weight="9"
android:text="15 seconds"
android:textColor="#000000"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<RadioButton
android:id="@+id/rb_15sec"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#F5F5F5"
android:orientation="horizontal"
android:weightSum="10" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:layout_weight="9"
android:text="30 seconds"
android:textColor="#000000"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<RadioButton
android:id="@+id/rb_30sec"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#F5F5F5"
android:orientation="horizontal"
android:weightSum="10" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:layout_weight="9"
android:text="1 minute"
android:textColor="#000000"
android:textSize="18sp" />
<RadioButton
android:id="@+id/rb_1min"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#F5F5F5"
android:orientation="horizontal"
android:weightSum="10" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:layout_weight="9"
android:text="2 minutes"
android:textColor="#000000"
android:textSize="18sp" />
<RadioButton
android:id="@+id/rb_2min"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#F5F5F5"
android:orientation="horizontal"
android:weightSum="10" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:layout_weight="9"
android:text="5 minutes"
android:textColor="#000000"
android:textSize="18sp" />
<RadioButton
android:id="@+id/rb_5min"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:checked="true" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#F5F5F5"
android:orientation="horizontal"
android:weightSum="10" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:layout_weight="9"
android:text="10 minutes"
android:textColor="#000000"
android:textSize="18sp" />
<RadioButton
android:id="@+id/rb_10min"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1" />
</LinearLayout>
</RadioGroup>
<LinearLayout
android:id="@+id/ll_cancel"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:background="#C9DCE0"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Cancel"
android:textColor="#000000"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
CustomDialogue.java
package com.example.coustomdialogue;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
import android.widget.Toast;
public class CustomDialogue extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.custom_dialogue);
final RadioGroup rg = (RadioGroup) findViewById(R.id.rg_all);
final RadioButton rb1 = (RadioButton)findViewById(R.id.rb_10min);
final RadioButton rb2 = (RadioButton)findViewById(R.id.rb_15sec);
final RadioButton rb3 = (RadioButton)findViewById(R.id.rb_1min);
final RadioButton rb4 = (RadioButton)findViewById(R.id.rb_2min);
final RadioButton rb5 = (RadioButton)findViewById(R.id.rb_30sec);
final RadioButton rb6 = (RadioButton)findViewById(R.id.rb_5min);
rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if(checkedId == R.id.rb_10min){
rg.clearCheck();
rb2.setChecked(false);
rb3.setChecked(false);
rb4.setChecked(false);
rb5.setChecked(false);
rb6.setChecked(false);
}else if(checkedId == R.id.rb_15sec){
rg.clearCheck();
rb1.setChecked(false);
rb3.setChecked(false);
rb4.setChecked(false);
rb5.setChecked(false);
rb6.setChecked(false);
}else if(checkedId == R.id.rb_1min){
rg.clearCheck();
rb2.setChecked(false);
rb4.setChecked(false);
rb1.setChecked(false);
rb5.setChecked(false);
rb6.setChecked(false);
}else if(checkedId == R.id.rb_2min){
rg.clearCheck();
rb2.setChecked(false);
rb3.setChecked(false);
rb5.setChecked(false);
rb1.setChecked(false);
rb6.setChecked(false);
}else if(checkedId == R.id.rb_30sec){
rg.clearCheck();
rb2.setChecked(false);
rb3.setChecked(false);
rb4.setChecked(false);
rb6.setChecked(false);
rb1.setChecked(false);
}else{
rg.clearCheck();
rb2.setChecked(false);
rb2.setChecked(false);
rb3.setChecked(false);
rb4.setChecked(false);
rb5.setChecked(false);
rb1.setChecked(false);
}
}
});
}
}
我得到了以下内容的真正答案 我解决了我的问题,因为我在每个单选按钮上使用了 Click 事件。每当我当时单击单选按钮时,我都会将选中的更改为取消选中(如果有)。无需使用 RadioGroup。 希望对大家有帮助。