🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

2082閲覧

RadioGroupに対するクリックイベント取得について

jun74

総合スコア338

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2019/10/22 10:24

編集2019/10/22 11:05

前提・実現したいこと

以下の通りに記述しても、RadioGroupに対するクリックイベントを取得出来ません。
RadioButtonに対して1つずつしか取得不可能なのでしょうか?
なお、RadioButtonに対して1つずつ取得は実現済です。

該当のソースコード

java

1 //バイブラジオボタン押下時 2 RadioGroup rg_vibe = (RadioGroup) layout.findViewById(R.id.rg_vibe); 3 rg_vibe.setOnClickListener(new View.OnClickListener() { 4 @Override 5 public void onClick(View v) { 6 7 int wk_vibe = 0; 8 9 RadioButton rb_vibe = (RadioButton) layout.findViewById(rg_vibe.getCheckedRadioButtonId()); 10 String rb_vibe_str = rb_vibe.getText().toString(); 11 if(rb_vibe_str.equals(off_str)){ 12 wk_vibe = 0; 13 }else{ 14 if(rb_vibe_str.equals(low_str)){ 15 wk_vibe = 1; 16 }else{ 17 if(rb_vibe_str.equals(mid_str)){ 18 wk_vibe = 2; 19 }else{ 20 if(rb_vibe_str.equals(hi_str)){ 21 wk_vibe = 3; 22 } 23 } 24 } 25 } 26 27 //バイブ起動 28 Vibe vibe = new Vibe(); 29 vibe.runVibe(wk_vibe); 30 31 } 32 });

試したこと

「setOnCheckedChangeListener」であれば動きますが、チェックが変更のときしか取得できず、変更せず同じラジオボタンが押されたときも動作させたいためダメでした。

補足情報(FW/ツールのバージョンなど)

Android Studio3.4
APIレベル14から28まで対象

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/10/22 12:33

RadioGroupのsetOnClickListenerを使うということは、RadioGroupがタップされたときを取得するのだからおそらくだめだと思います。 > なお、RadioButtonに対して1つずつ取得は実現済です。 とあるので、これで問題ないと思うのですが、RadioGroupで取得したい理由は何でしょう? そこが明白でないと、RadioButtonに対して1つずつで十分だと思いますし、どうしてもRadioGroupでないとだめだと言うなら、その処理を自作するしかないと思います。
jun74

2019/10/22 12:43

setOnCheckedChangeListenerはRadioGroupに対して行えるので、同じようにクリックも出来ないかな?と。 同じ処理を行いたいので一纏めにしたかったのですが、サブルーチンにするしかなさそうですね。
退会済みユーザー

退会済みユーザー

2019/10/22 13:46

setOnCheckedChangeListenerはRadioGroup特有のリスナーで、setOnClickListenerはViewクラスを継承したクラスがみんな持っているものなので、残念ながらひとくくりにはできないですね・・・
退会済みユーザー

退会済みユーザー

2019/10/22 13:47

とはいえ、それで解決したのなら、自己解決ということで、ご自身で回答&ベストアンサーにしてください。
jun74

2019/10/24 12:03

返事が遅れて申し訳ありません。 ありがとうございました。 自己解決にさせて頂きました。 また、よろしくお願いいたします。
guest

回答1

0

自己解決

RadioButtonに対して1つずつしか取得不可能とのことで、以下のように対応しました。

java

1 //弱のバイブラジオボタン押下時 2 RadioButton rb_vibeLow = (RadioButton) layout.findViewById(R.id.rb_vibeLow); 3 rb_vibeLow.setOnClickListener(new View.OnClickListener() { 4 @Override 5 public void onClick(View v) { 6 //バイブ起動 7 Vibe vibe = new Vibe(); 8 vibe.runVibe(1); 9 } 10 }); 11 12 //中のバイブラジオボタン押下時 13 RadioButton rb_vibeMid = (RadioButton) layout.findViewById(R.id.rb_vibeMid); 14 rb_vibeMid.setOnClickListener(new View.OnClickListener() { 15 @Override 16 public void onClick(View v) { 17 //バイブ起動 18 Vibe vibe = new Vibe(); 19 vibe.runVibe(2); 20 } 21 }); 22 23 //強のバイブラジオボタン押下時 24 RadioButton rb_vibeHi = (RadioButton) layout.findViewById(R.id.rb_vibeHi); 25 rb_vibeHi.setOnClickListener(new View.OnClickListener() { 26 @Override 27 public void onClick(View v) { 28 //バイブ起動 29 Vibe vibe = new Vibe(); 30 vibe.runVibe(3); 31 } 32 });

投稿2019/10/24 12:02

jun74

総合スコア338

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問