問題タブ [rx-binding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - SearchView、Retrofit、RxJava (RxBindings) で検索機能を実装するには?
ユーザーがSearchView
ウィジェットに入力すると、アプリは API 呼び出しを (バックグラウンド スレッドで) 実行してサーバーから検索結果を取得し、それらを ( UI スレッドで) RecyclerView に表示する必要があります。
フラグメントで次のコードを使用します。
しかし、例外があります:
を削除する.subscribeOn(Schedulers.io())
と、フラグメントが作成され、クエリが入力されていないときに検索 API 呼び出しが起動され、SearchView
例外が発生します
次に、検索クエリを入力するretrofitService.search(query)
と、呼び出されなくなりました。
android - RxJava Observable の現在の値を取得する
私のUIにはRadioGroup
with 3RadioButtons
と "normal"がありButton
ます。
ユーザーがクリックするとButton
、選択したものを読み込んでRadioButton
何かをしたいと思います。
これまでのところ機能していますが、ユーザーが別のものを選択するたびRadioButton
に、新しいログ メッセージが表示されます。
RadioButton
変更を購読せずに現在選択されているものを読み取る方法はありますか?
android - イベント バスを使用して RxJava サブスクリプションを渡す
現在、RxJava と RxBinding を使用してビューの変更を観察するプロジェクトに取り組んでいます。onResume
これは、ライフサイクル イベントに簡単にアクセスできるフラグメントやアクティビティに対して非常にうまく機能していますonPause
。
最近、ビューのリストを表示する RecyclerView を導入しました。それらはすべて、サブスクライブしたいデータ ストリームにすることができます。私が直面した問題は、作成時に CompositeSubscription オブジェクトをアクティビティ/フラグメントからアダプタを介してビュー ホルダーに渡すことです。もちろん、うまく機能しません。ユーザーが画面を離れて戻ってきたとき (onPause
およびonResume
呼び出されているとき)、ViewHolders は再作成されません。
解決策は、アダプター、レイアウト マネージャー (既存のビュー ホルダーにアクセスするため) のライフサイクルを認識させることですが、ロジック レイヤー間でこれらのサブスクリプション参照を渡すために追加のコードを記述する必要があります。
しかし、私の同僚の 1 人がイベント バスを使用することを提案しました。これは、イベントのサブスクリプションをアクティビティ/フラグメントに渡すために使用され、そこで CompositeSubscription に追加され、すべてが一緒にサブスクライブ解除されます。さらに、ユーザーが戻ってきたときに、自分自身をサブスクライブするようにビュー ホルダーに通知できます。
このアプローチについてどう思いますか?このアプローチで注意すべき落とし穴はありますか?
android - Android アプリの RxJava と MVP
MVP アーキテクチャを使用し、View 側で RxJava と RxBinding を使用して Android アプリに画面を実装しようとしています。
基本的に、2 つのスピナー、1 つの TextEdit、およびデフォルトで無効になっているボタンがあります。スピナーでアイテムが選択されていて、テキスト フィールドが空でない場合にボタンを有効にしたい。コードは次のとおりです。
問題は、それを MVP パターンに統合する方法です。理想的には、ボタンを有効にする「ビジネス ロジック」はプレゼンターにある必要があります。これを達成するための最良の方法は何ですか?元のオブザーバーを何らかの方法でプレゼンターに渡すことを考えています (副次的な質問はどのように?)。プレゼンターはそれらのオブザーバーを組み合わせて、ボタンを有効にするロジックを持ちます。最後に、View を呼び出してボタンの状態を変更するだけです。
より良いオプションはありますか?View 側に RxJava を使用した MVP の良い例はありますか?
android - RxAndroid onError の後、ボタン クリック リスナーが機能しなくなる
ボタンクリックイベントが機能しなくなる理由を理解したいと思います。Observables で RxBinding と Retrofit 2 を使用しています。
(ログイン後付けサービスから) エラーが発生した場合、メソッド handleError は正常に実行されますが、その後、クリック イベントは発生しなくなります。
私は何か間違ったことをしていますが、理解できません。改造エラーを処理するより良い方法はありますか?
ありがとう
android - RxJava/RxBinding - サブスクリプションが存在するかどうかを確認します
私は RxBinding を使用しており、アイテムを再利用する onBindViewHolder メソッドの RecyclerView アダプターでサブスクリプションを作成しています。サブスクライバーを EditText オブジェクトに既に割り当てているかどうかを確認し、その場合はそのサブスクリプションを削除する簡単な方法はありますか?
私のコードは次のようになります
android - CombineLatest と RxView.clicks
テキストビューのクリックと編集ボックスのテキスト変更を検出するために Rxbinding ライブラリを使用しています。textview をクリックするか、空でない編集ボックスを使用し、以下のように 2 つのオブザーバブルで Combinelatest 演算子を使用していることを検出する必要があります。
問題は、 vPriceOnReq (TextView)をクリックするたびに、 Statement-1が呼び出されず、Statement-3のみが呼び出されることです。しかし、vProjectBudget (EditText) にテキストを入力するたびに、Statement-2とStatement-3が常に呼び出されます。誰かが私がここで間違っていることを理解するのを手伝ってくれますか?