2016-05-17 7 views
0

MainActivityを使用しています。BaseActivityです。 このアプリはBottomSheetとナビゲーションドロワーを利用しています。MainActivityの変数をBaseActivityから変更してください

MainActivityはBottomSheetの状態を処理し、引き出しはBaseActivityによって処理されています。これは他のアクティビティでも使用されているためです。

問題は次のとおりです。ユーザーが引き出しからアイテムを選択したときにBottomSheetを非表示にしたいのですが、これはonNavigationItemSelectedコールバックの明白な呼び出しです。 MainActivityからbottomSheet状態が変更されたことを変数に通知するにはどうすればよいですか?

より正確には、MainActivityの変数をBaseActivityからどのように変更できますか?

答えて

1

MainActivity内でクリックをカスタム処理する場合は、メソッドをオーバーライドして元のコードとは異なるハンドリングを追加し、残りの部分を実行したい場合はsuper.handleClick()を呼び出しますと呼ばれる。

は私にとって最もクリーンなアプローチです。

+0

完璧!ブリリアント:) – Mes

0

あなたはBaseActivityでハンドラを作成し、sendMessageはそのメッセージをMainActivityで処理することができます。

同じロジックとして、一意のアクションでブロードキャストを送信し、そのアクションで処理するために、MainActivityにbroadcastReceiverを登録できます。

ケースがもっと具体的な場合は、単にBaseActivityでメソッドを作成し、MainActivityでオーバーライドして、必要な処理を行います。

0

基本クラスの変数にアクセスするには、それらをpublic/protectedにする必要があります。次に、super.var_nameまたはvar_nameだけで変数にアクセスできます。

関連する問題