8

フラグメントの作成中に、getActivity() が null であることがわかりました。したがって、問題を絞り込むために、アクティビティのローカル コピーを onAttach(アクティビティ アクティビティ) に保持しました。これは、定義上、アクティビティにアタッチされている場合です。

ただし、アクティビティを onAttach に記録しましたが、まだ null です。

この問題は 2.3.6 以下でのみ発生します。

これはサポート パッケージの既知の問題ですか?

4

2 に答える 2

9

フラグメントを再開状態にするために呼び出される一連のメソッドは次のとおりです。

  • onAttach(Activity)は、フラグメントがそのアクティビティに関連付けられると呼び出されます。
  • onCreate(Bundle)は、フラグメントの初期作成を行うために呼び出されます。
  • onCreateView(LayoutInflater、ViewGroup、Bundle)は、フラグメントに関連付けられたビュー階層を作成して返します。
  • onActivityCreated(Bundle)は、そのアクティビティが独自のActivity.onCreate()を完了したことをフラグメントに通知します。
  • onViewStateRestored(Bundle)は、ビュー階層の保存された状態がすべて復元されたことをフラグメントに通知します。
  • onStart()は、フラグメントをユーザーに表示します(開始されている含まれているアクティビティに基づいて)。
  • onResume()は、フラグメントがユーザーと対話するようにします(再開される含まれているアクティビティに基づいて)。

太字のメソッドは、getActivityがnullを返さなくなったメソッドである必要があります。

onAttachメソッドは、アクティビティオブジェクトのメソッドを呼び出すために使用しないでください。コールバックインターフェイスを初期化するために使用する必要があります。これらのインターフェイスの例は、ここにあります。

于 2013-03-21T16:49:59.783 に答える
-3

この問題は、サポート パッケージが原因で、フラグメントが Android 3.0 以降、つまり API レベル 11 以降であることを意味するため、Android 2.3.6 ジンジャーバードのアプリ クラッシュに確実に直面します。

this.getActivity();
于 2013-03-21T16:45:58.480 に答える