問題タブ [otto]
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 - OTTO では、パラメータ化されたクラスのすべてのインスタンスは「同じ」ですか?
私が尋ねた別の質問には良い解決策があると思っていましたが、今ではうまくいかないと思います。
Otto で、次のようなことをすると:
ApiRequestEvent<>
のインスタンスをバスに投稿すると、両方のメソッドが呼び出されるようです。それは何が期待されていますか?
Java には実際には 1 つの class しかなくApiRequestEvent
、Otto は型パラメーターを無視してクラスを見ているため、これが発生するのではないかと考えています。
このアプローチを放棄する前に、とにかくこれについて何かありますか? このパラメーター化されたクラスを、サブスクライブしたいイベントの「署名」として使用するつもりでした。
java - Otto ランタイム例外
私のアプリはあらゆる場所で Otto を使用していますが、一貫して同じランタイム例外クラッシュが発生しています。これはいくつかの異なるイベントで発生しているため、otto を正しく実装していないと思います。次のようにメイン スレッド バス技術を使用しています。
これが私のバスプロバイダーです:
スタック トレースは次のとおりです (最も一般的なもの)。
android - 子フラグメント間の動的データ交換
フラグメントとその子フラグメントを持つアクティビティがあります。動的に生成された文字列配列は、2 つの子フラグメント間で交換する必要があります。しかし、私がそのためにどんなテクニックを使ったとしても、それはnull
毎回戻ってきました.
私の設計では面倒ですが、カスタム インターフェイスの実装も使用しました。この問題の解決策を提案していただければ幸いです。
Fragment-X と Fragment-Y は ViewPager Adapter で定義され、onPauseFragment()
メソッドonResumeFragment()
はカスタムOnPageChangeListener()
インターフェイス メソッドによって実装されます。
Fragment_Y は、ViewPager アイテムの位置が変更されたときにバンドル メッセージを受け取ることになっています
FragmentLifecycle
フラグメント間の状態変化を制御するインターフェイスクラス
EDIT
: ViewPager アダプター
EDIT:
Fragment_B
EDIT:
ここに ViewPger Fragments ( Fragment_X
and FragmentY
) があります。これは、リスト アイテムを選択し、Strin 配列に収集し、バンドルで公開して で表示しようとしていますFragment_Y
。
android - スクエアのオットーとスレッド
オットさんに質問です。キックオフする実行可能なスレッドがあります。何らかの処理を行い、結果をバス上のイベントとして投稿します。
Runnable クラス内では、このクラスの getInstance を呼び出してバスを取得します。
その後、Activity は同じメソッド BusProvider.getInstance() を使用してバスにアクセスし、イベントを登録します。ただし、 @Subscribe メソッドは呼び出されません。
私の仮定は、バスを特定のスレッドに強制しているにもかかわらず、つまり. ThreadEnforcer.MAIN、ランナブルで新しいスレッドをスプールしているため、アクティビティ内で後でイベントを受信しない理由は、あるスレッドでの投稿とリッスンが別のスレッドで行われているため、機能しないためですか?
java - RuntimeException: イベント @ otto をディスパッチできませんでした
現在のアプリ バージョンでは、otto の EventHandler に問題があります。クラッシュログにRuntimeException
、次の説明が表示されます。
「理由: java.lang.RuntimeException: イベントをディスパッチできませんでした: classcom.nameOfBrand.ui.events.SwitchFragmentEvent をハンドラ [EventHandler public void com.nameOfBrand.ui.activities.MainActivity.onSwitchFragmentEvent(com.nameOfBrand.ui.events.SwitchFragmentEvent) に)]」
ボタンがあり、その onClickListener で自己定義の を起動しますSwitchFragmentEvent
。いくつかの奇妙な状況では、フレームワークはイベントをディスパッチできず、RuntimeException
.
ボタンのあるフラグメントが拡張AbstractResultListFragment
され、これが拡張されAbstractFragment
ます。EventBus を AbstractFragement の onResume に登録し、onPause で登録解除します。この1つのボタンを除いて、すべてが正常に機能します:/
誰かがアイデアを持っているか、このようなことをしたことがありますか?
更新: Scompt は正しかった。RuntimeException は、コード内の NullPointerException の原因からスローされました。どうも
ヒント: クラッシュ ログを最後まで読んでください ;)