Как получить Intent сначала, а потом только создать фрагмент? - PullRequest
0 голосов
/ 17 мая 2019

В одном из моих действий с методом onCreate я передаю ArrayList из намерения во фрагмент, чтобы создать фрагмент. Тем не менее, я понял, что это вызовет исключение нулевого указателя, так как фрагмент может быть создан до получения намерения? Как это исправить? В моем методе onCreate.

monitor_list= this.getIntent().getParcelableArrayListExtra("monitorList");

    cholesterol_monitor = (ArrayList<CholesterolMonitor>) monitor_list;





    monitorListFragment = MonitorListFragment.newInstance(cholesterol_monitor);
    getSupportFragmentManager()
            .beginTransaction()
            .replace(R.id.fragment_monitor_layout, monitorListFragment)
            .commit();

1 Ответ

0 голосов
/ 18 мая 2019

сначала проверьте, не равен ли значение monitor_list нулю, а затем, если он не заменяет фрагмент

    ArrayList<CholesterolMonitor> monitor_list= this.getIntent().getParcelableArrayListExtra("monitorList");
    if (monitor_list.size()>0){
        cholesterol_monitor = (ArrayList<CholesterolMonitor>) monitor_list;
        monitorListFragment = MonitorListFragment.newInstance(cholesterol_monitor);
        getSupportFragmentManager()
                .beginTransaction()
                .replace(R.id.fragment_monitor_layout, monitorListFragment)
                .commit();
    }else // list is null
...