單選按鈕,RadioGroup通常和RadioButton配合起來使用。
常見的選性別操作。用一下兩種方式實現。
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
tools:context="com.amy.radiogrouptest.MainActivity">
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="性別:"
android:height="50px"/>
<RadioGroup
android:id="@+id/radioGroup1"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/radio0"
android:text="男"
android:checked="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RadioButton
android:id="@+id/radio1"
android:text="女"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RadioGroup>
<Button
android:id="@+id/button1"
android:text="提交"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</android.support.constraint.ConstraintLayout>
MainActivity.java
package com.amy.radiogrouptest;
import android.provider.MediaStore;
import android.support.annotation.IdRes;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
*方式一:在選擇單選按鈕時獲取值
*/
//獲取單選按鈕組
final RadioGroup sex = (RadioGroup) findViewById(R.id.radioGroup1);
sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
//獲取被選擇的單選按鈕
RadioButton r = (RadioButton) findViewById(checkedId);
Log.e("單選按鈕","您選擇的是"+r.getText());
}
});
/**
* 方式二:在單擊“提交”按鈕時獲取
*/
//獲取提交按鈕
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//通過for循環遍歷單擊按鈕組
for (int i=0;i<sex.getChildCount();i++) {
RadioButton r = (RadioButton) sex.getChildAt(i);
//判斷單選按鈕是否被選中
if (r.isChecked()) {
Log.e("單選按鈕","性別:"+r.getText());
break;
}
}
}
});
}
}
效果圖:
複選框,在選項前面默認顯示成一個小方塊,與單選按鈕不同的是,它爲每一個複選框都提供一個選中和不選中兩種狀態。
主要應用在選愛好,課程,購物車裏面的種種。
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
tools:context="com.amy.checkbox.MainActivity">
<LinearLayout
android:orientation="horizontal"
android:layout_width="368dp"
android:layout_height="wrap_content"
tools:layout_editor_absoluteY="0dp"
tools:layout_editor_absoluteX="8dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="愛好"
android:textSize="16sp"
android:width="100px"
android:gravity="right"
android:height="50px"/>
<CheckBox
android:id="@+id/like1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Java" />
<CheckBox
android:id="@+id/like2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C++" />
<CheckBox
android:id="@+id/like3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Python" />
<Button
android:id="@+id/button1"
android:text="提交"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</android.support.constraint.ConstraintLayout>
MainActivity.java
package com.amy.checkbox;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Button button;
private CompoundButton.OnCheckedChangeListener onCheckedChangeListener = new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
//判斷複選框是否被選中
Log.e("複選框","選中了["+buttonView.getText().toString()+"]");
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final CheckBox like1 = (CheckBox) findViewById(R.id.like1);
final CheckBox like2 = (CheckBox) findViewById(R.id.like2);
final CheckBox like3 = (CheckBox) findViewById(R.id.like3);
//爲三個複選框添加狀態改變監聽器
like1.setOnCheckedChangeListener(onCheckedChangeListener);
like2.setOnCheckedChangeListener(onCheckedChangeListener);
like3.setOnCheckedChangeListener(onCheckedChangeListener);
//獲取提交按鈕,併爲其添加單擊事件監聽
button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String likes = "";
if (like1.isChecked())likes += like1.getText().toString()+" ";
if (like2.isChecked())likes += like2.getText().toString()+" ";
if (like3.isChecked())likes += like3.getText().toString()+" ";
//顯示被選中的內容
Toast.makeText(MainActivity.this,likes,Toast.LENGTH_SHORT).show();
}
});
}
}
效果圖:
這部分比較簡單,肯能是還沒有到難得時候,暗自開心一會。畢竟幸福的日子總是那麼短暫