【问题标题】:How to get Intent first and then only create a fragment?如何先获取 Intent 然后只创建一个片段?
【发布时间】:2019-05-17 11:57:03
【问题描述】:

在我的一项活动 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();

【问题讨论】:

    标签: android-fragments android-intent android-asynctask oncreate android-intentservice


    【解决方案1】:

    首先检查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
    

    【讨论】:

    • 我发现 monitor_list 不为空,但其中的某些位置为空,因此我需要添加检查并为空位置设置默认值,但我不知道该怎么做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多