[解決済み] フラグメントで非デフォルトのコンストラクタを避けたい理由は?
2022-04-22 04:46:14
質問
でアプリを作成しています。
Fragments
で、そのうちの1つで、デフォルトでないコンストラクタを作成したところ、このような警告が表示されました。
Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead
なぜこれが良くないのか、誰か教えてください。
また、どのようにしたらこれを実現できるかを提案してもらえますか。
public static class MenuFragment extends ListFragment {
public ListView listView1;
Categories category;
//this is my "non-default" constructor
public MenuFragment(Categories category){
this.category = category;
}....
デフォルトでないコンストラクタを使用せずに?
解決方法は?
バンドルオブジェクトを作成し、データを挿入します。
Category
オブジェクトを作成します)。注意することは、シリアライズ可能なオブジェクトでない限り、このオブジェクトを直接バンドルに渡すことはできないことです。
フラグメントの中でオブジェクトを作り、バンドルにはidなどだけを入れておくと良いと思います。これがバンドルの作成とアタッチのコードです。
Bundle args = new Bundle();
args.putLong("key", value);
yourFragment.setArguments(args);
その後、フラグメントアクセスデータで。
Type value = getArguments().getType("key");
以上です。
関連
-
Android Studio を 3.6.3 にアップデートした後、構成 :classpath のアーティファクトをすべて解決できない。
-
RuntimeException: アクティビティを開始できません ComponentInfo solution
-
IllegalStateException。ArrayAdapter は、リソース ID が TextView である必要があります。
-
android studioが "The activity must be exported or contain an intent-filter" と表示され実行される。
-
ライブラリをモジュールとしてインポートする際にエラーが発生しました。Error:A problem occurred configuring project ':library'.
-
エラータイプ 3 タイプエラー, Error: アクティビティクラス{}が存在しません。アクティビティ起動時のエラー 解決方法
-
ConstraintLayoutのいくつかのプロパティの概要(RelativeLayoutの強化版、LinearLayoutの比例プロパティを含む、階層ツールの削減)。
-
アプリの実行エラー。ターゲットデバイスが見つからない問題
-
Android.support.v7.widget.Toolbar が見つかりませんでした。
-
[解決済み] なぜフラグメントなのか、そしてアクティビティの代わりにフラグメントを使用するのはどんなときか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
AndroidでAttempt to invoke virtual method... on null object referenceの例外が発生する。
-
android.os の NetworkOnMainThreadException。
-
アンドロイドプロジェクトのパッケージングにgradleを使用する際の問題点
-
Android開発で「Attempt to invoke virtual method 'XXX()' on null object reference」というヌルポインター例外に遭遇する。
-
アンドロイドスタジオでJunitのエラー問題を解決する
-
ライブラリをモジュールとしてインポートする際にエラーが発生しました。Error:A problem occurred configuring project ':library'.
-
Windowsのadbシェルでデータディレクトリにアクセスするとパーミッションが拒否される
-
android bluetooth--Bluetooth on、検索、ペアリング、接続
-
[解決済み] 新しいAndroid Fragmentをインスタンス化するためのベストプラクティス
-
[解決済み】フラグメントに空のコンストラクタは本当に必要なのか?