第20章 OnCheckedChangeListenerイベント (ゼロから学ぶAndroid)
2022-02-10 20:33:30
RadioGroupとCheckBoxはすべてOnCheckedChangeListenerイベントを持っているので、一緒に勉強しましょう。
I. レイアウト
1. res/layout/activity_main.xml"ファイルを開いてください。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<RadioGroup
android:id="@+id/gender"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
<RadioButton
android:id="@+id/male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="male" />
<RadioButton
android:id="@+id/female"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="female" />
</RadioGroup>
<CheckBox
android:id="@+id/football"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/gender"
android:text="football" />
<CheckBox
android:id="@+id/basketball"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/football"
android:text="Blue Ball" />
</RelativeLayout>
2. インターフェースは以下の通りです。
II. OnCheckedChangeListenerイベント
ファイル "src/com.genwoxue.oncheckedchanged/MainActivity.java"を開いてください。
そして、以下のコードを入力してください。
package com.genwoxue.oncheckedchanged;
import android.os;
import android.app.Activity;
import android.widget.RadioGroup;
import android.widget.RadioButton;
OnCheckedChangeListener; //import OnCheckedChangeListener event related package
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;
public class MainActivity extends Activity {
private RadioGroup GenderGroup=null;
private RadioButton rbMale=null;
private RadioButton rbFemale=null;
private CheckBox cbFootBall=null;
private CheckBox cbBasketBall=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GenderGroup=(RadioGroup)super.findViewById(R.id.gender);
rbMale=(RadioButton)super.findViewById(R.id.male);
rbFemale=(RadioButton)super.findViewById(R.id.female);
cbFootBall=(CheckBox)super.findViewById(R.id.football);
cbBasketBall=(CheckBox)super.findViewById(R.id.basketball);
//register OnCheckedChangeListener event in GenderGroup
GenderGroup.setOnCheckedChangeListener(new GenderOnCheckedChangeListener());
//register OnCheckedChangeListener event in cbFootBall
cbFootBall.setOnCheckedChangeListener(new BootBallOnCheckedChangeListener());
// register OnCheckedChangeListener event in cbBasketBall
cbBasketBall.setOnCheckedChangeListener(new BasketBallOnCheckedChangeListener());
}
private class GenderOnCheckedChangeListener implements OnCheckedChangeListener{
@Override
public void onCheckedChanged(RadioGroup group,int checkedId){
String sGender="";
if(rbFemale.getId()==checkedId){
sGender=rbFemale.getText().toString();
}
if(rbMale.getId()==checkedId){
sGender=rbMale.getText().toString();
}
Toast.makeText(getApplicationContext(), "The gender you selected is: "+sGender, Toast.LENGTH_LONG).show();
}
}
private class BootBallOnCheckedChangeListener implements CompoundButton.
@Override
public void onCheckedChanged(CompoundButton button, boolean isChecked){
String sFav="";
if(isChecked){
sFav=cbFootBall.getText().toString();
sFav=sFav+"Checked! ";
}
else
sFav=sFav+"Not moved";
Toast.makeText(getApplicationContext(), "Your selected hobby is:"+sFav, Toast.LENGTH_LONG).show();
}
}
private class BasketBallOnCheckedChangeListener implements CompoundButton.OnCheckedChangeListener{
@Override
public void onCheckedChanged(CompoundButton button,boolean isChecked){
String sFav="";
if(cbBasketBall.isChecked()){
sFav=cbBasketBall.getText().toString();
sFav=sFav+"Checked! ";
}
else
sFav=sFav+"not moved";
Toast.makeText(getApplicationContext(), "Your selected hobby is:"+sFav, Toast.LENGTH_LONG).show();
}
}
}
ラジオボタンもチェックボックスもOnCheckedChangeイベントを持ちますが、この2つの違いに注意してください。
その効果は次のとおりです。
関連
-
Android プロジェクト コンパイル時に com.android.builder.internal.aapt.v2.Aapt2Exception に遭遇しました。AAPT2 エラー: 詳細はログを確認してください。
-
Android フロントカメラのビデオ録画に失敗しました (MediaRecorder: start failed: -19)
-
Android 問題集 第42回:INSTALL_FAILED_OLDER_SDK
-
Android ViewPager のエラーです。NULLオブジェクトの参照で仮想メソッドxxxを呼び出そうとした
-
エラーを解決する SSLピアが正しくシャットダウンされない
-
アプリケーションがメインスレッドで過剰に作業している可能性があります。
-
指定された子にはすでに親がいます。まず、その子の親に対して removeView() をコールする必要があります。
-
Android ListViewでaddHeaderを使用する
-
Androidスレッドの詳細
-
Android TextViewの自動改行問題
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
AndroidStudioのコンパイル時のエラーを解決します。構成 ':classpath' のすべてのアーティファクトを解決できませんでした。
-
RecyclerView がアダプタが接続されていませんと表示され、レイアウトソリューションをスキップする
-
jniとjavaの間でbytearrayを受け渡しする
-
Android Studioの解決策:xxxは囲むクラスではありませんエラー
-
リターンスタックpopBackStack()のAndroidフラグメント、リターンonResumeの問題
-
Android 問題集 No.11:トランスポートエンドポイントが接続されていない
-
アンドロイドバージョン一覧
-
サービスを利用した特別な放送受信者の登録
-
Android Studioのヒント - これを読めば、すべてのヒントが役に立つ
-
android AVD開始時刻エラー