データベースとのネットワーク接続を判断するために、メイン アクティビティでイベント リスナーを使用しています。
//Main Activity
new MyListener() {
if (connected) {
Log.d(TAG,"connected");
Snackbar.make(_current_view_,"Connected to Firebase", Snackbar.LENGTH_SHORT).show();
}
else {
Log.d(TAG,"disconnected");
Snackbar.make(__current_view_, "Disconnected from Firebase", Snackbar.LENGTH_SHORT).show();
}
});
これはメイン アクティビティのリスナーであるため、ネットワーク接続が変更されるたびに、エレガントに呼び出されます。しかし、アプリケーションによってレンダリングされている現在のアクティビティのビューが必要です。
現在のビューを取得するにはどうすればよいですか? リスナーは機能し、ロギングは完璧ですが、メイン アクティビティのレイアウト上にないため、Snackbar は呼び出されません。すると、スナックバーが表示されます。現在のビューの参照を取得することは可能ですか?
SnackBars を Toasts に置き換えると、ログと完全に連携して動作します。
Toast.makeText(Login.this, "Connected to Firebase", Toast.LENGTH_SHORT).show(); //Works
私は試した:
getCurrentFocus()
findViewbyId(android.R.id.content)
getWindow().getDecorView()
getWindow().getDecorView().getRootView()
どれも機能しません。どんな助けでも大歓迎です。