網站首頁 編程語言 正文
本文實例為大家分享了Android studio實現單選按鈕的具體代碼,供大家參考,具體內容如下
創建空activity
編輯activity_main.xml文件
代碼如下:
<?xml version="1.0" encoding="utf-8"?> <androidx.appcompat.widget.LinearLayoutCompat ? ? xmlns:android="http://schemas.android.com/apk/res/android" ? ? xmlns:app="http://schemas.android.com/apk/res-auto" ? ? xmlns:tools="http://schemas.android.com/tools" ? ? android:layout_width="match_parent" ? ? android:layout_height="wrap_content" ? ? android:orientation="vertical" ? ? android:gravity="center" ? ? tools:context=".MainActivity"> ? ? <TextView ? ? ? ? android:id="@+id/chooseTxt" ? ? ? ? android:layout_width="match_parent" ? ? ? ? android:layout_height="wrap_content" ? ? ? ? android:gravity="center" ? ? ? ? android:text="@string/text1" ? ? ? ? android:textColor="@color/colorblack" ? ? ? ? android:textSize="30sp" /> ? ? ? ? //定義RaidGroup是要注意屬性添加的位置 ? ? <RadioGroup ? ? ? ? android:id="@+id/radioGroup" ? ? ? ? android:layout_width="match_parent" ? ? ? ? android:layout_height="wrap_content" ? ? ? ? android:orientation="vertical" ? ? ? ? android:gravity="center" ? ? ? ? > ? ? ? ? <RadioButton ? ? ? ? ? ? android:id="@+id/radioButton1" ? ? ? ? ? ? android:layout_width="wrap_content" ? ? ? ? ? ? android:layout_height="match_parent" ? ? ? ? ? ? android:button="@null" ? ? ? ? ? ? android:drawableRight="@android:drawable/btn_radio" ? ? ? ? ? ? android:text="@string/text2" ? ? ? ? ? ? /> ? ? ? ? <RadioButton ? ? ? ? ? ? android:id="@+id/radioButton2" ? ? ? ? ? ? android:layout_width="wrap_content" ? ? ? ? ? ? android:layout_height="match_parent" ? ? ? ? ? ? android:text="@string/text3" ? ? ? ? ? ? /> ? ? </RadioGroup> ? ? <Button ? ? ? ? android:id="@+id/ClearBtn" ? ? ? ? android:layout_width="match_parent" ? ? ? ? android:layout_height="wrap_content" ? ? ? ? android:text="@string/text4" /> ? ? <Button ? ? ? ? android:id="@+id/AddBtn" ? ? ? ? android:layout_width="match_parent" ? ? ? ? android:layout_height="match_parent" ? ? ? ? android:text="@string/text5" ? ? ? ? ?/> </androidx.appcompat.widget.LinearLayoutCompat>
還有strings.xml文件,代碼如下:
<resources> ? ? <string name="app_name">My App</string> ? ? <string name="text1">我選擇的是...?</string> ? ? <string name="text2">按鈕1</string> ? ? <string name="text3">按鈕2</string> ? ? <string name="text4">清除選中</string> ? ? <string name="text5">添加子項</string> </resources>
再是MainActivity.java文件,代碼如下:
package com.example.myapp;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
? ? private RadioGroup ?radioGroup;
? ? private RadioButton radioButton1;
? ? private RadioButton radioButton2;
? ? private Button radioClearBtn;
? ? private Button radioAddBtn;
? ? private TextView chooseTxt;
? ? @Override
? ? protected void onCreate(Bundle savedInstanceState) {
? ? ? ? super.onCreate(savedInstanceState);
? ? ? ? setContentView(R.layout.activity_main);
? ? ? ? radioButton1 = findViewById(R.id.radioButton1);
? ? ? ? radioButton2 = findViewById(R.id.radioButton2);
? ? ? ? radioGroup= findViewById(R.id.radioGroup);
? ? ? ? //設置選中變換監聽
? ? ? ? radioGroup.setOnCheckedChangeListener(onCheckedChangeListener);
? ? ? ? //分別為兩個按鈕設置點擊監聽
? ? ? ? radioClearBtn = findViewById(R.id.ClearBtn);
? ? ? ? radioClearBtn.setOnClickListener(onClickListener);
? ? ? ? radioAddBtn = findViewById(R.id.AddBtn);
? ? ? ? radioAddBtn.setOnClickListener(onClickListener);
? ? ? ? chooseTxt = findViewById(R.id.chooseTxt);
? ? }
? ? //onCheckedChangeListener()方法
? ? private ?OnCheckedChangeListener onCheckedChangeListener=new OnCheckedChangeListener() {
? ? ? ? @Override
? ? ? ? public void onCheckedChanged(RadioGroup group, int checkedId) {
? ? ? ? //定義id并賦值被選中的單選按鈕的id
? ? ? ? ? ? int id = group.getCheckedRadioButtonId();
? ? ? ? ? ? switch (id) {
? ? ? ? ? ? ? ? case R.id.radioButton1:
? ? ? ? ? ? ? ? ? ? chooseTxt.setText("我選擇的是:" + radioButton1.getText());
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case R.id.radioButton2:
? ? ? ? ? ? ? ? ? ? chooseTxt.setText("我選擇的是:" + radioButton2.getText());
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? default:
? ? ? ? ? ? ? ? ? ? chooseTxt.setText("我選擇的是:新增");
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ?}
? ? ? ? }
? ? };
? ? private OnClickListener onClickListener = new OnClickListener() {
? ? ? ? @Override
? ? ? ? public void onClick(View view) {
? ? ? ? ? ? ? ? switch (view.getId()) {
? ? ? ? ? ? ? ? ? ? case R.id.ClearBtn:
? ? ? ? ? ? ? ? ? ? ? ? radioGroup.check(-1);//清除選項
? ? ? ? ? ? ? ? ? ? ? ? chooseTxt.setText("我選擇的是...?");
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? case R.id.AddBtn:
? ? ? ? ? ? ? ? ? ? ? ? RadioButton newRadio = new RadioButton(MainActivity.this);
? ? ? ? ? ? ? ? ? ? ? ? //將新增的radiobutton加入到radioGroup中
? ? ? ? ? ? ? ? ? ? ? ? newRadio.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
? ? ? ? ? ? ? ? ? ? ? ? newRadio.setText("新增");
? ? ? ? ? ? ? ? ? ? ? ? radioGroup.addView(newRadio, radioGroup.getChildCount());
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? default:
? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? }
? ? ? ? }
? ? };
}
運行結果如下:
原文鏈接:https://blog.csdn.net/wj778/article/details/105919170
相關推薦
- 2022-11-01 如何將asp.net?core程序部署到Linux服務器_實用技巧
- 2022-07-08 C#獲取應用程序路徑或Web頁面目錄路徑_C#教程
- 2022-12-24 Python中切片操作的示例詳解_python
- 2022-05-22 分享幾種python?變量合并方法_python
- 2022-09-09 pycharm?如何縮進和SQL亂碼及SQL包含變量_python
- 2022-04-19 C++中拷貝構造函數的使用_C 語言
- 2022-07-31 C語言編程基礎char類型轉換示例_C 語言
- 2023-04-11 pytest用例執行順序和跳過執行詳解_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支