質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Java

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

Android

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

Android Studio

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

Q&A

解決済

1回答

1515閲覧

RecyclerView.Adapter内で判定している、RecyclerView内のswitchの変更判定を呼び元のActivityで判定したい

jun74

総合スコア338

Java

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

Android

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

Android Studio

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

0グッド

0クリップ

投稿2019/08/18 09:39

前提・実現したいこと

RecyclerView.Adapter内で判定している、RecyclerView内のswitchの変更判定を呼び元のActivityで判定したい。
switchがオンになったものの並び順を前にしたく、呼び元のActivityで並び順通りにRecyclerViewを再セットする処理を実施し、RecyclerViewを再描画したい。

該当のソースコード

java

1public class AlarmsAdapter extends RecyclerView.Adapter<AlarmsAdapter.ItemViewHolder> { 2・・・ 3 @Override 4 public void onBindViewHolder(final ItemViewHolder holder, final int position) { 5 6 //アラームスイッチ変更 7 holder.sw_alarm.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 8 @Override 9 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 10 if(holder.sw_alarm.isChecked()) { 11 //mSwitch : Off -> On の時の処理 12 13 // コンテキスト取得 14 context = buttonView.getContext(); 15 //アラームスイッチ更新 16 alarm_switch_upd(holder.sw_alarm.isChecked() ,position); 17 } else { 18 //mSwitch : On -> Off の時の処理 19 20 // コンテキスト取得 21 context = buttonView.getContext(); 22 //アラームスイッチ更新 23 alarm_switch_upd(holder.sw_alarm.isChecked() ,position); 24 } 25 } 26 }); 27 }

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

Android Studio3.4
API14から28対象でターゲットは28

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

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

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

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

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

guest

回答1

0

ベストアンサー

RecyclerView 内のイベントを Activity で検知したい場合は, OnxxxListener (名前はなんでも良い) のような Interface を実装することがスタンダートだと思います.

投稿2019/08/18 12:49

s.m_1

総合スコア293

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

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

s.m_1

2019/08/19 11:22

イメージとしては、上記の URL のコードの HeavyTask が AlarmsAdapter になる感じです。 そして、AlarmsAdapter#onBindViewHolder 内の、イベントが起きたとき(switch のオン/オフ)に listener を呼び出せば、Activity から検知できるようになるはずです。
jun74

2019/08/19 13:37

ありがとうございます! 上記のURLの一番上のパターンで実装して実現できました! 今後の幅が広がりそうです。 上記URLの匿名クラスでの実装も試したいような気もしたのですが、RecyclerViewのAdapterに当てはめるのは難しそうなので諦めました。。
s.m_1

2019/08/19 13:45

よかったですね。 あと、Kotlin の方がよりシンプルに書くことができるので、この機会に Kotlin でも書いてみることをお勧めします。
jun74

2019/08/19 14:09

Androidで1本動くアプリは作ったことあるのですが、全然Androidの開発に対して理解していないことだらけなので、ググって例題が一番出てきて、teratailで質問しても回答を得られやすいjavaを選択しています。。 そもそも、javaもAndroidの開発でしか触れていないので、java自体も怪しく。。 そんな感じなのでKotlinに乗り換えるにも混乱の魔法に掛かりそうです。。。
s.m_1

2019/08/19 22:33

なるほど。 私自身もまだまだ理解できていないことはたくさんあります。 なので、お互い開発頑張っていきましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問