开发工具:Android studio
jdk:1.8
安卓谷歌12

1.activity_main.xml:

首先设置一个LinearLayout,里面添加子控件然后和另一个用来显示选择结果的,最后来个button。
效果预览图:代码:

<LinearLayoutandroid:id="@+id/layout"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="=>选择你的性别:"android:textColor="@color/purple_200" /><CheckBoxandroid:id="@+id/man"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="20dp"android:text="男" /><CheckBoxandroid:id="@+id/woman"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="20dp"android:text="女" /><TextViewandroid:id="@+id/msg"android:layout_width="match_parent"android:layout_height="match_parent" /><Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:text="选择" /></LinearLayout>

2.MainActivity.java

先获取每一个控件

CheckBox man, woman;
Button button;
TextView msg ;

监听选择状态的方法:

private void initView() {man = (CheckBox) findViewById(R.id.man);woman = (CheckBox) findViewById(R.id.woman);man.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {if (isChecked) {man.setChecked(true);woman.setChecked(false);} else {man.setChecked(false);}}});woman.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {if (isChecked) {woman.setChecked(true);man.setChecked(false);} else {woman.setChecked(false);}}});

onCreate:button监听获取到checkbox

initView();final LinearLayout layout = (LinearLayout) findViewById(R.id.layout);button = (Button) findViewById(R.id.button);msg = (TextView)findViewById(R.id.msg);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {new AlertDialog.Builder(MainActivity.this).setTitle("提示信息").setMessage("确定选择?").setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {StringBuilder sex = new StringBuilder();sex.append("性别为:");if (man.isChecked()) {sex.append(man.getText().toString() + " ");} else if (woman.isChecked()) {sex.append(woman.getText().toString() + " ");} else {msg.setText("未选择性别。\n");}msg.setText(sex);}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {Toast.makeText(MainActivity.this,"取消选择",Toast.LENGTH_LONG).show();}}).create().show();}});

3.MainActivity.java全代码

package edu.zut.mysqltest;import androidx.appcompat.app.AppCompatActivity;import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {CheckBox man, woman;Button button;TextView msg ;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();final LinearLayout layout = (LinearLayout) findViewById(R.id.layout);button = (Button) findViewById(R.id.button);msg = (TextView)findViewById(R.id.msg);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {new AlertDialog.Builder(MainActivity.this).setTitle("提示信息").setMessage("确定选择?").setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {StringBuilder sex = new StringBuilder();sex.append("性别为:");if (man.isChecked()) {sex.append(man.getText().toString() + " ");} else if (woman.isChecked()) {sex.append(woman.getText().toString() + " ");} else {msg.setText("未选择性别。\n");}msg.setText(sex);}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {Toast.makeText(MainActivity.this,"取消选择",Toast.LENGTH_LONG).show();}}).create().show();}});}private void initView() {man = (CheckBox) findViewById(R.id.man);woman = (CheckBox) findViewById(R.id.woman);//监听事件man.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {if (isChecked) {man.setChecked(true);woman.setChecked(false);} else {man.setChecked(false);}}});woman.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {if (isChecked) {woman.setChecked(true);man.setChecked(false);} else {woman.setChecked(false);}}});}
}

最后效果图:gif:

安卓CheckBox实现单选相关推荐

  1. Android在listview添加checkbox实现单选多选操作问题

    android根据View的不同状态更换不同的背景 http://www.eoeandroid.com/thread-198029-1-1.html android 模仿朋友网推出的菜单效果[改进版] ...

  2. 复选框(checkbox)、单选框(radiobox)的使用

    复选框(checkbox).单选框(radiobox)的使用 复选框: HTML: // 复选框 <input type="checkbox" name="chec ...

  3. html 单选打勾效果,checkbox 实现单选效果(html)

    note:在html 标签类中的checkbox实现单选效果. 在最近的开发项目中,客户要求使用小方格子实现"单选"功能,显然圆点的radio被out了,只能选择chckbox的方 ...

  4. ElementUI:Checkbox实现单选,嵌套多选

    官网地址:ElementUI-Checkbox 一.Checkbox 基础介绍 <template><!-- `checked` 为 true 或 false --><e ...

  5. CSS3重新定义input中呆若木鸡的默认复选框CheckBox和单选框Radio样式

    <!DOCTYPE html> <html> <head><meta charset="UTF-8"><style>/* ...

  6. 多个互相有联系的checkbox的单选逻辑

    checkbox单选的状态逻辑,状态好的时候一下就写好了,状态不好的时候要调试比较久,当然主要是对其中的事件不太清楚. 先给出效果图吧. 然后给出代码, selectZhiFuBaoPay.setOn ...

  7. jquery实现checkbox的单选和全选

    一.思路 全选:判断"全选"checkbox的状态,如果选中则把tbody下所有的checkbox选中,反之 单选:主要是判断有没有全选,如果不是选中状态就把全选的checkbox ...

  8. jquery checkbox 实现单选

    最近在用javascript的时候发现网上实现checkbox单选的代码都已经过时了. 用着几年前的代码发现根本不行了 原因是jquery api已经更改 http://api.jquery.com/ ...

  9. js实现表单checkbox的单选,全选

    全选&单选 //<input type="checkbox" name="" class="quan" value=" ...

最新文章

  1. Paxos、Raft不是一致性算法/协议?
  2. 安装 SQL Server 商业解决方案模板
  3. 科大星云诗社动态20210525
  4. python 读取文件时报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illegal multib
  5. spring的部分注释
  6. 给定一个邻接矩阵,求可达矩阵及强连通、单向连通、弱连通、不连通的判断
  7. matlab写实对角矩阵,Matlab对角矩阵
  8. 计算机ms高级应用科目一 科目二考什么,驾考提前知 | 科目一、科目二、科目三、科目四都考什么?...
  9. 2.4G无线音频双向传输技术运用
  10. H3C的l2tp报错
  11. 贵州省正安县格林镇:“爱心妈妈”来了!
  12. apriori算法的简介和改进总结
  13. python自己做课程表_Kivy做一个课程表App(上)
  14. (IT段子)关于统一风格——使用ESLint+Prettier来统一前端代码风格
  15. table动态修改表格内容
  16. Toshiba TC358743XBG HDMI接口转IC
  17. 魔兽地图编辑器插件YDWE的使用与基本设置3之地形面板、装饰物面板、单位面板、区域面板、镜头面板
  18. day08Java-继承
  19. NAntpad 不免费了
  20. EditText中灰色文字提示

热门文章

  1. containers文件夹可以删除吗_电脑进行C盘清理,appdata文件夹可以删除吗?
  2. go mysql存储过程_Golang 调用MySQL存储过程
  3. html不居中代码,HTML – 为什么我不能居中div?
  4. 动态让控件超出屏幕_JAVA浏览器控件JxBrowser v7.5上线!更轻松处理Dynamic Favicons...
  5. c语言计算机二级考试内容,2017计算机二级考试内容C语言
  6. php 输出答案,php 如何只输出最后生成的那个值??
  7. arm oe linux gnueabi 系统,【技术分享】Quectel 4G模块Opencpu中实现高通wifi功能
  8. 计算机教学中因才施教,浅析高校《大学计算机基础》教学中的因材施教
  9. python的mag模块_Python全栈-magedu-2018-笔记22
  10. appscan无法连接到服务器_对于csgo无法连接到任意服务器解决办法