ListFragment не был создан в setcontentview main_activity

Надеюсь, это моя последняя проблема с фрагментами :)

У меня есть два фрагмента (один обычный, другой список), и когда я запускаю setContentView для main_activity, я замечаю, что вызывается onCreate обычного фрагмента, с другой стороны, ListFragment onCreate не вызывается.

Оба они почти одинаковы, за исключением того, что я не переопределял onAttach + onDetach в ListFragment (это было сделано для обратных вызовов в обычном). Я перезаписал: onCreate, onCreateView, onActivityCreated, onStart (для запуска асинхронной задачи), onSaveInstanceState.

Можете ли вы сказать мне, в чем проблема? так как я получаю NullPointerEception в менеджере фрагментов для ListFragment.

Некоторый код:

activity_main.xml:

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.mynews.mynews.MainActivity">

    <FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <fragment android:id="@+id/navigation_drawer"
        android:layout_width="@dimen/navigation_drawer_width"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:name="com.mynews.mynews.NavigationDrawerFragment"
        tools:layout="@layout/fragment_navigation_drawer" />

    <fragment android:id="@+id/rss_feed"
        android:layout_width="@dimen/navigation_drawer_width"
        android:layout_height="match_parent"
        android:layout_gravity="end"
        android:name="com.kfir.bs.mynews.mynews.NewsFeed"
        tools:layout="@layout/fragment_news_feed" />

</android.support.v4.widget.DrawerLayout>

Об активности:

   protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        try {
            setContentView(R.layout.activity_main);
            mNavigationDrawerFragment = (NavigationDrawerFragment)
                    getFragmentManager().findFragmentById(R.id.navigation_drawer);
            mNewsFeed = (NewsFeed) getFragmentManager().findFragmentById(R.id.rss_feed);

На фрагменте:

public class NavigationDrawerFragment extends Fragment {
    private static final String STATE_SELECTED_POSITION = "selected_navigation_drawer_position";
    private static final String PREF_USER_LEARNED_DRAWER = "navigation_drawer_learned";
    private NavigationDrawerCallbacks mCallbacks;
    private ActionBarDrawerToggle mDrawerToggle;

    private DrawerLayout mDrawerLayout;
    private ListAdapter adapter;
    private ListView mDrawerListView;
    private View mFragmentContainerView;

    private int mCurrentSelectedPosition = 0;
    private boolean mFromSavedInstanceState;
    private boolean mUserLearnedDrawer;

    public NavigationDrawerFragment() {
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity());
        mUserLearnedDrawer = sp.getBoolean(PREF_USER_LEARNED_DRAWER, false);

        if (savedInstanceState != null) {
            mCurrentSelectedPosition = savedInstanceState.getInt(STATE_SELECTED_POSITION);
            mFromSavedInstanceState = true;
        }

        adapter = new ListAdapter(getActionBar().getThemedContext(), generateData());

        selectItem(mCurrentSelectedPosition);
    }

В ListFragment:

public class NewsFeed extends ListFragment
{
    private static final String STATE_SELECTED_POSITION = "selected_navigation_drawer_position";

    View feedView;
    ListAdapterFeed rssListAdapter;

    private int mCurrentSelectedPosition = 0;
    private boolean mFromSavedInstanceState;

    public NewsFeed() {
    }

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity());

        if (savedInstanceState != null) {
            mCurrentSelectedPosition = savedInstanceState.getInt(STATE_SELECTED_POSITION);
            mFromSavedInstanceState = true;
        }

        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
    }

Добавление трассировки стека:

https://www.dropbox.com/s/dxrz0925u3nfmgp/ddms7983186720865326533.trace

Логкат:

Заранее спасибо, К.

Просто отсутствует logcat.


person AgentK    schedule 19.04.2014    source источник
comment
Кажется, я не могу получить logcat в Android Studio при перехвате исключений...   -  person fllo    schedule 19.04.2014
comment
Я получаю NullPointerEception в менеджере фрагментов для ListFragment — откуда вы это знаете без logcat или stacktrace?   -  person AgentK    schedule 19.04.2014
comment
Я использую отладчик для проверки потока, вам нужна трассировка стека?   -  person fllo    schedule 20.04.2014
comment
Да, извините за использование имени logcat.   -  person AgentK    schedule 20.04.2014
comment
Добавлены трассировка и logcat   -  person fllo    schedule 20.04.2014
comment
Будет лучше предоставить здесь трассировку стека в формате кода (потому что я не могу открыть его со своей машины, извините). Тем не менее, поместите здесь соответствующую часть для вашей проблемы. Кроме того, я мог бы помочь кому-то найти проблему быстрее. Спасибо.   -  person AgentK    schedule 20.04.2014
comment
Открытие файла трассировки довольно сложно, вам нужна DDMS из SDK, см. здесь stackoverflow.com/questions/4677144/   -  person fllo    schedule 20.04.2014
comment
Есть идеи? Это кажется странным, мне пришло в голову, что, может быть, это из-за макета ящика в activity_main?   -  person AgentK    schedule 20.04.2014
comment
04-19 23:15:49.901 11473-11473/com.kfir.bs.mynews.mynews E/SELinux﹕ Функция: selinux_android_load_priority [0], нет файла sepolicy 04-19 23:15:49.901 11473-11473/com .kfir.bs.mynews.mynews E/SELinux﹕ Функция: selinux_android_load_priority [1], нет файла версии sepolicy 04-19 23:15:49.901 11473-11473/com.kfir.bs.mynews.mynews E/SELinux﹕ Функция: selinux_android_load_priority , версия загрузки VE=SEPF_GT-N7100_4.3_0018 04-19 23:15:49.901 11473-11473/com.kfir.bs.mynews.mynews E/SELinux﹕ selinux_android_seapp_context_reload: файл seapp_contexts загружается из / 19 23:15:49.906 11473-11473/com.kfir.bs.mynews.mynews D/dalvikvm﹕ Проверка с поздним включением JNI 04-19 23:15:49.991 11473-11473/com.kfir.bs.mynews.mynews I/ System.out﹕ Отправка фрагмента WAIT 04-19 23:15:49.991 11473-11473/com.kfir.bs.mynews.mynews W/ActivityThread﹕ Приложение com.kfir.bs.mynews.mynews ожидает отладчика на порту 8100 ... 04-19 23:15:50.036 11473- 11479/com.kfir.bs.mynews.mynews I/dalvikvm﹕ Отладчик активен 04-19 23:15:50.191 11473-11473/com.kfir.bs.mynews.mynews I/System.out﹕ Отладчик подключен 04- 19 23:15:50.191 11473-11473/com.kfir.bs.mynews.mynews I/System.out﹕ ожидание установки отладчика... 04-19 23:15:50.391 11473-11473/com.kfir.bs .mynews.mynews I/System.out﹕ ожидание установки отладчика... 04-19 23:15:50.591 11473-11473/com.kfir.bs.mynews.mynews I/System.out﹕ ожидание установки отладчика ... 04-19 23:15:50.791 11473-11473/com.kfir.bs.mynews.mynews I/System.out﹕ ожидание установки отладчика... 04-19 23:15:50.996 11473-11473/ com.kfir.bs.mynews.mynews I/System.out﹕ ожидает завершения отладчика... 04-19 23:15:51.196 11473-11473/com.kfir.bs.mynews.mynews I/System.out﹕ ожидание установки отладчика... 04-19 23:15:51.396 11473-11473/com.kfir.bs.mynews.mynews I/System.out﹕ ожидание установки отладчика... 04-19 23:15: 51.596 11473-11473/com.kfir.bs.mynews.mynews I/Система .out﹕ ожидание установки отладчика... 04-19 23:15:51.796 11473-11473/com.kfir.bs.mynews.mynews I/System.out﹕ ожидание установки отладчика... 04-19 23 :15:51.996 11473-11473/com.kfir.bs.mynews.mynews I/System.out﹕ отладчик установлен (1310) 04-19 23:15:52.911 11473-11473/com.kfir.bs.mynews.mynews D/dalvikvm﹕ threadid=1: все еще приостановлено после отмены (sc=1 dc=1) 04-19 23:16:17.531 11473-11479/com.kfir.bs.mynews.mynews I/dalvikvm﹕ TRACE STARTED: '[ DDMS]' 8192KB 04-19 23:16:17. 546 11473-11479/com.kfir.bs.mynews.mynews D/dalvikvm﹕ +++ число активных профайлеров сейчас 1 04-19 23:16:24.391 11473-11473/com.kfir.bs.mynews.mynews E/MoreInfoHPW_ViewGroup ﹕ Родительское представление не является TextView 04-19 23:16:27.771 11473-12572/com.kfir.bs.mynews.mynews I/dalvikvm﹕ threadid=11: ожидание завершения трассировки метода 04-19 23:16:48.961 11473-11473/com.kfir.bs.mynews.mynews E/MyNews﹕ Exceptionjava.lang.NullPointerException 04-19 23:17:15.451 11473-11479/com.kfir.bs.mynews.mynews D/dalvikvm﹕ +++ количество активных профилировщиков сейчас 0 04-19 23:17:15.711 11473-11479/com.kfir.bs.mynews.mynews I/dalvikvm﹕ TRACE STOPPED: запись 44458 записей 04-19 23:17:15.711 11473-11479/com. kfir.bs.mynews.mynews W/dalvikvm﹕ ПРЕДУПРЕЖДЕНИЕ: активен отладчик; результаты отслеживания метода будут искажены   -  person AgentK    schedule 20.04.2014