記事のディレクトリ
チェックボックスチェックボックス
[チェックボックス]チェックボックスは二重状態のボタンであり、チェックされているかチェックされていないかの2つの状態があります。レイアウトファイルでチェックボタンを定義する場合は、ボタンごとにOnCheckedChangeListenerイベントリスナーを登録し、onCheckedChanged()イベント処理メソッドのisCheckedパラメータに従ってオプションが選択されているかどうかを判断します。
CheckBoxとRadioButtonの主な違いは次のとおりです。
- RadioButtonラジオボタンを選択した後、もう一度クリックしてもその状態を変更することはできませんが、CheckBoxチェックボックスをクリックして状態を変更することはできます。
- RadioButtonラジオボタングループでは、1つだけを選択できます。一方、CheckBoxチェックボックスでは、同時に複数の選択を行うことができます。
- ほとんどのUIフレームでは、RadioButtonはデフォルトで円で表され、CheckBoxはデフォルトで長方形で表されます。
コードデモ
簡単な例を使用して、CheckBoxの使用法を示しましょう。例として「スポーツ趣味」の複数の選択肢を取り上げると、人々の「スポーツ趣味」にはサッカーやバスケットボールなどが含まれる場合がありますが、人々の性別の選択肢は異なり、選択することしかできません。 「男性」。「または「女性」、そしてこの2つは相互に排他的です。
レイアウトコードは以下の通りです
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:orientation="vertical">
<!-- 基本显示 1 -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/title"
android:textSize="20sp"
android:textStyle="bold"
/>
<!--足球 2 -->
<CheckBox
android:id="@+id/checkbox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/football"
android:textSize="16sp"
/>
<!-- 篮球 3 -->
<CheckBox
android:id="@+id/checkbox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/basketball"
android:textSize="16sp"
/>
<!-- 排球 4 -->
<CheckBox
android:id="@+id/checkbox3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/volleyball"
android:textSize="16sp"
/>
</LinearLayout>
コードの説明は次のとおりです。ラベル1のTextViewはユーザーのタイトルを表示するために使用され、ラベル2は「サッカー」チェックボックスを定義し、ラベル3は「バスケットボール」チェックボックスを定義し、ラベル4は「バレーボール」を定義します。チェックボックス。
上記のコードでは、チェックボックスのテキスト部分は文字列リソースを使用しています。たとえば、「football」のテキストは引用符で囲まれたstrings.xmlファイル内の文字列です。
strings.xmlの文字列定義は次のとおりです
<resources>
<string name="title">你喜欢的运动是:</string>
<string name="app_name">复选框测试</string>
<string name="football">足球</string>
<string name="basketball">篮球</string>
<string name="volleyball">排球</string>
</resources>
開発プロセスでstrings.xmlファイルを使用する目的は次のとおりです。
- 国際化のために。画面に表示されるテキストはstrings.xmlで定義することをお勧めします。将来国際化する必要がある場合は、string.xmlファイルを変更するだけで済みます。
- アプリケーションのボリュームを減らし、データの冗長性を減らすため。
以下は、対応するアクティビティでのチェックボックスの使用方法を示しています。ユーザーがさまざまな「趣味」を選択すると、ユーザーの選択結果が画面に表示されます。
コードは以下のように表示されます
package com.qst.demo2;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class CheckBoxDemoActivity extends AppCompatActivity {
//声明复选框 1
private CheckBox footballChx;
private CheckBox basketballChx;
private CheckBox volleyballChx;
@Override //重写父类的onCreate方法
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //调用父类的onCreate方法创建Activity
setContentView(R.layout.checkbox_demo); //设置布局
//通过findViewById获得CheckBox对象 2
footballChx = (CheckBox) findViewById(R.id.checkbox1);
basketballChx = (CheckBox) findViewById(R.id.checkbox2);
volleyballChx = (CheckBox) findViewById(R.id.checkbox3);
//注册事件监听器 3
footballChx.setOnCheckedChangeListener(listener);
basketballChx.setOnCheckedChangeListener(listener);
volleyballChx.setOnCheckedChangeListener(listener);
}
//使用内部类形式的响应事件 4
private CompoundButton.OnCheckedChangeListener listener = new CompoundButton.OnCheckedChangeListener() {
@Override //重写接口的方法
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
switch (buttonView.getId()) {
case R.id.checkbox1:
//选择足球
if (isChecked) {
//Toast的使用 5
Toast.makeText(CheckBoxDemoActivity.this, "你喜欢足球",
Toast.LENGTH_LONG).show();
}
break;
case R.id.checkbox2:
//选择篮球
if (isChecked) {
Toast.makeText(CheckBoxDemoActivity.this, "你喜欢篮球",
Toast.LENGTH_LONG).show();
}
break;
case R.id.checkbox3:
//选择排球
if (isChecked) {
Toast.makeText(CheckBoxDemoActivity.this, "你喜欢排球",
Toast.LENGTH_LONG).show();
}
break;
default:
break;
}
}
};
}
コードの説明は次のとおりです。ラベル1は、ユーザーが選択できる3つのチェックボックスチェックボックスを定義します。ラベル2は、ラベル1で定義された各属性変数を初期化し、属性変数を割り当てて、後続のビジネスロジック操作を可能にします。ラベル3は、次のリスナーを設定します。 3つのCheckBoxオブジェクトは、それぞれの選択イベントまたはキャンセルイベントを監視します。ラベル4は、ユーザーが別のCheckBoxをクリックすると、対応するテキスト情報が表示されるときに、3つのCheckBoxのビジネスロジック機能を監視および実装するリスナーオブジェクトを定義します。画面上のトーストオブジェクト。トーストはAndroidでプロンプト情報を表示するために使用されるメカニズムです。ダイアログとの違いは次のとおりです。トーストプロンプトにはフォーカスがなく、時間が制限されており、一定時間後に自動的に消えます。
** AndroidMainfest.xmlマニフェストファイルでアクティビティを宣言します**
運転結果