frag.getview() всегда возвращает нуль при вызове в действии

У меня есть эта проблема, когда фрагмент.getView() всегда возвращает ноль при вызове внутри другого действия, несмотря на тот факт, что метод onCreateView был переопределен в стороне фрагмента.

Например: в моей деятельности:

frag = new NewBooksFrag();

В моем фрагменте:

    @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View view = null;

    view = inflater.inflate(R.layout.new_book_frag, container,true);

    return view;
}

но когда я звоню

frag.getView()

это все еще возвращает ноль. Есть идеи, почему это происходит? Потому что в документации по Android четко указано getView():

Msgstr "Получить корневой вид для макета фрагмента (тот, который возвращается onCreateView(LayoutInflater, ViewGroup, Bundle)), если предоставляется."

если это возвращает нуль, как мы можем ссылаться на представление фрагмента?

заранее спасибо

2 ответа

Решение

Как упомянуто Visamanath, вы не добавляете свой фрагмент в действие, вы просто создаете его.

Чтобы добавить фрагмент к действию, вы можете сделать это, реализовав его как представление в xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <fragment android:name="com.example.android.fragments.NewBooksFrag"
              android:id="@+id/new_books_fragment"
              android:layout_width="match_parent"
              android:layout_height="match_parent" />

</LinearLayout>

Или, добавив это динамически в коде:

        NewBooksFrag frag = new NewBooksFrag();

        getSupportFragmentManager().beginTransaction()
                .add(R.id.fragment_container, frag ).commit();

Для более подробной информации, пожалуйста, посетите официальный гид

Если вы не пропустили опубликовать часть кода

frag = new NewBooksFrag();

не будет звонить onCreateView() Вы должны прикрепить фрагмент к деятельности. использование FragmentManager сделать это.

Другие вопросы по тегам