AI智能
改变未来

Android中单选按钮和复选框

一单选按钮

   不能直接加RadioButton,如果直接加的话,按钮只能点击一次
   先加入Radiogroup,再在其中加入RadioButton
   android:checked属性,该属性用于之doingRadioButton,CheckBox初试时是否被选中

   来看一个小例子:通过点击提交的按钮,来获取当前选中的值
   在后端中通过findViewById来获取XML中的button 和 radioGroup  
   button = findViewById(R.id.button); 
   radioGroup = findViewById(R.id.radioGroup);
   当点击button 的时候调用单机事件
   button.setOnClickListener(new View.OnClickListener() {
       @Override
        public void onClick(View v) {      
        }
    });
   循环遍历整个for(int i = 0 ; i < radioGroup.getChildCount() ; i++ )得到单个radioButton 
   注:在radioGroup中取出单个的radioButton 的时候要强制类型转换
          RadioButton radioButton = (RadioButton) radioGroup.getChildAt(i);
   只要找到一个不为空,就会马上跳出循环,然后输出提示的信息
   Toast.makeText(MainActivity.this,str,Toast.LENGTH_LONG).show();

[code]package com.example.test1;import androidx.appcompat.app.AppCompatActivity;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.ImageView;import android.widget.RadioButton;import android.widget.RadioGroup;import android.widget.Switch;import android.widget.Toast;import android.widget.ToggleButton;import org.w3c.dom.Text;public class MainActivity extends AppCompatActivity {RadioGroup radioGroup;Button button,button2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = findViewById(R.id.button);radioGroup = findViewById(R.id.radioGroup);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String str = \"\";for(int i = 0 ; i < radioGroup.getChildCount() ; i++ ){RadioButton radioButton = (RadioButton) radioGroup.getChildAt(i);if(radioButton.isChecked()){str = radioButton.getText().toString();break;}}Toast.makeText(MainActivity.this,str,Toast.LENGTH_LONG).show();}});}}
[code]<?xml version=\"1.0\" encoding=\"utf-8\"?><LinearLayout 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=\"match_parent\"android:orientation=\"vertical\"tools:context=\".MainActivity\"><LinearLayoutandroid:layout_width=\"match_parent\"android:layout_height=\"wrap_content\"android:orientation=\"vertical\"><RadioGroupandroid:id=\"@+id/radioGroup\"android:layout_width=\"match_parent\"android:layout_height=\"match_parent\" ><RadioButtonandroid:id=\"@+id/radioButton4\"android:layout_width=\"match_parent\"android:layout_height=\"wrap_content\"android:text=\"男\" /><RadioButtonandroid:id=\"@+id/radioButton3\"android:layout_width=\"match_parent\"android:layout_height=\"wrap_content\"android:text=\"女\" /><Buttonandroid:id=\"@+id/button\"android:layout_width=\"match_parent\"android:layout_height=\"wrap_content\"android:text=\"Button\" /></RadioGroup></LinearLayout></LinearLayout>

二。复选按钮CheckBox

      在CheckBox中并不像RadioButton那样有RadioGroup父容器
      所以在遍历的时候,先将所有的CheckBox放到checkBoxes 数组中,然后再来遍历,取出CheckBox中text,放到str中
      在提示信息中打印输出,最后还要清空,不然第二次的内容就会包括第一次的内容
      CheckBox[] checkBoxes = new CheckBox[]{checkBox1,checkBox2,checkBox3,checkBox4};

[code]package com.example.test1;import androidx.appcompat.app.AppCompatActivity;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.ImageView;import android.widget.RadioButton;import android.widget.RadioGroup;import android.widget.Switch;import android.widget.Toast;import android.widget.ToggleButton;import org.w3c.dom.Text;public class MainActivity extends AppCompatActivity {CheckBox checkBox1,checkBox2,checkBox3,checkBox4;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);checkBox1 = findViewById(R.id.checkBox);checkBox2 = findViewById(R.id.checkBox2);checkBox3 = findViewById(R.id.checkBox3);checkBox4 = findViewById(R.id.checkBox4);button2 = findViewById(R.id.button2);button2.setOnClickListener(new View.OnClickListener() {String str=\"\";@Overridepublic void onClick(View v) {CheckBox[] checkBoxes = new CheckBox[]{checkBox1,checkBox2,checkBox3,checkBox4};for(int i=0;i<checkBoxes.length;i++){if(checkBoxes[i].isChecked()){str+=checkBoxes[i].getText().toString();}}Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT).show();str=\"\";}});}}
[code]<?xml version=\"1.0\" encoding=\"utf-8\"?><LinearLayout 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=\"match_parent\"android:orientation=\"vertical\"tools:context=\".MainActivity\"><LinearLayoutandroid:layout_marginTop=\"200px\"android:layout_width=\"match_parent\"android:layout_height=\"match_parent\"android:orientation=\"vertical\"><CheckBoxandroid:id=\"@+id/checkBox4\"android:layout_width=\"match_parent\"android:layout_height=\"wrap_content\"android:text=\"苹果\" /><CheckBoxandroid:id=\"@+id/checkBox3\"android:layout_width=\"match_parent\"android:layout_height=\"wrap_content\"android:text=\"香蕉\" /><CheckBoxandroid:id=\"@+id/checkBox2\"android:layout_width=\"match_parent\"android:layout_height=\"wrap_content\"android:text=\"西瓜\" /><CheckBoxandroid:id=\"@+id/checkBox\"android:layout_width=\"match_parent\"android:layout_height=\"wrap_content\"android:text=\"梨\" /><Buttonandroid:id=\"@+id/button2\"android:layout_width=\"match_parent\"android:layout_height=\"wrap_content\"android:text=\"提交\" /></LinearLayout></LinearLayout>

 

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Android中单选按钮和复选框