3

空想アプリを作成しようとしていますが、DreamService クラス内でのフラグメントの使用に関するドキュメントが見つからないようです。

私の意図は、XML ファイルでフレームを使用することでした。

    <FrameLayout 
      android:id="@+id/content_frag"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_centerInParent="true"
      />

次に FragmentManager を使用して、フラグメントをフレームに追加します。

    public void onAttachedToWindow( )
{
    setContentView(R.layout.daydream);

    getFragmentManager().beginTransaction().replace(R.id.content_frag, new ContentFragment(), "ContentFragment")
        .commit();

    super.onAttachedToWindow();
}

「getFragmentManager()」または DreamService 内に同等の機能がないようです。したがって、これは可能ですか?どうすればよいですか?

ありがとう

4

2 に答える 2

1

フラグメントを DreamService と組み合わせて使用​​することができます。できるからといって、そうすべきという意味ではありません。なぜなら、フラグメントが通常 ( 内でActivity) および 内で使用されることを認識しなければならないという警告がいくつかあるからDreamServiceです。

次のスニペットは機能します (デバイスでテスト済み)。

MyFragment fragment = new MyFragment();
View view = fragment.onCreateView(LayoutInflater.fromContext(this), null, null);
setContentView(view);

ただし、フラグメントが にアタッチされていることに依存している場合Activity(たとえば、 を呼び出しgetResources()たり、null 以外を返す必要がある場合)、 s および null 参照を回避するために適切にgetActivity()チェックする必要があることに注意してください。また、適切なライフサイクル メソッド (つまり、など)を呼び出す責任があることに注意してください。isAdded()IllegalStateExceptiononDestroyView()

于 2013-12-08T08:23:28.237 に答える
0

私はあなたがこれを行うことができるとは思わない. DreamService はサービスです。FragmentManager の概念はありません。

于 2013-04-07T02:13:59.477 に答える