[解決済み] Android Fragment onAttach() 非推奨
質問
最新のサポートライブラリ(バージョン23.0.0)を使用するようにアプリをアップデートしたところ、FragmentクラスのonAttach()関数が非推奨になったことがわかりました。
の代わりに
onAttach (Activity activity)
今なんです。
onAttach (Context context)
私のアプリは非推奨の前に渡されたアクティビティを使用しているので、私が考える可能な解決策は、次のとおりです。
@Override
public void onAttach(Context context) {
super.onAttach(context);
activity = getActivity();
}
そのやり方は正しいでしょうか?
UPDATEしてください。
APIが23より低いデバイスを実行すると、新しいonAttach()が呼び出されない。これが意図したものでないことを祈ります!
UPDATE 2:
この問題は、SDKの最新のアップデートにより解決されました。
API 22のデバイスでテストしたところ、onAttach(Context)が呼び出されています。
クリック ここで 数週間前に出したバグレポートとGoogleの回答はこちらです。
解決方法は?
Activityはコンテキストなので、単純にコンテキストがActivityであることを確認し、必要に応じてキャストすればよい。
@Override
public void onAttach(Context context) {
super.onAttach(context);
Activity a;
if (context instanceof Activity){
a=(Activity) context;
}
}
更新しました。
という主張もあるようですが、新しい
Context
のオーバーライドが呼び出されることはありません。いくつかのテストを行いましたが、これが当てはまるシナリオは見つかりませんでしたし、ソースコードによれば、決してそうであってはなりません。SDK23以前も以後も、私がテストしたすべてのケースで
Activity
と
Context
のバージョンです。
onAttach
が呼び出されました。 もし、そうでないシナリオがあれば、その問題を説明するサンプルプロジェクトを作成し
Android チームに報告する
.
アップデート2: 私はAndroid Support Libraryのフラグメントのみを使用しています。オーバーライドが正しく呼び出されないという上記の問題は、フレームワークのフラグメントを使用した場合のみ明らかになるようです。
関連
-
[解決済み】Android TextView : "setTextで表示されたテキストを連結しない" について
-
[解決済み】"ビットマップが大きすぎてテクスチャにアップロードできない"
-
[解決済み] android.support.design.widget.FloatingActionButton クラスの展開に失敗しました。
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] FragmentでonActivityResultが呼び出されない
-
[解決済み] 新しいAndroid Fragmentをインスタンス化するためのベストプラクティス
-
[解決済み] FragmentのsetRetainInstance(boolean)を理解する。
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】パッケージ名(Google Analytics)に一致するクライアントが見つからない - 複数のproductFlavorsとbuildTypes
-
[解決済み】「ArrayAdapterはリソースIDがTextViewであることが必要」XMLの問題点
-
[解決済み】コンテンツには、id属性が「android.R.id.list」であるListViewが必要です。
-
[解決済み】onCreateOptionsMenu(Menu メニュー)とは何ですか?)
-
[解決済み】"ビットマップが大きすぎてテクスチャにアップロードできない"
-
[解決済み】プロガードを有効にすると、タスク ':app:crashlyticsStoreDeobsDebug' の依存関係を判断できない。
-
[解決済み】リストビューにonclicklistenerを追加する(android)
-
[解決済み】sendUserActionEvent()がnullである。
-
[解決済み】アクティビティにない場所でのgetLayoutInflater()の呼び出し
-
[解決済み] android.app.Fragmentとandroid.support.v4のapp.Fragmentの違いについて