android片段getArguments()返回null

roc*_*now 4 android nullpointerexception android-fragments

getArguments()返回null!

活动代码:

if (savedInstanceState == null) {
            // During initial setup, plug in the details fragment.
            FlightListFragment listFragment = 
                     FlightListFragment.newInstance(mSearchParams);
            getSupportFragmentManager().beginTransaction().add(
                    android.R.id.content, listFragment).commit();
 }  
Run Code Online (Sandbox Code Playgroud)

在片段中:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle 
                    savedInstanceState) {
        mSearchParams = 
               getArguments().getParcelable(SearchResultsActivity.EXTRA_SEARCH_PARAMS);
        return super.onCreateView(inflater, container, savedInstanceState);
    }
Run Code Online (Sandbox Code Playgroud)

和:

public static FlightListFragment newInstance(SearchParams sp) {
    FlightListFragment f = new FlightListFragment();
    Bundle b = new Bundle();
    b.putParcelable(SearchResultsActivity.EXTRA_SEARCH_PARAMS, sp);
    f.setArguments(b);
    return f;
}
Run Code Online (Sandbox Code Playgroud)

但是我总是在这里得到NullPointerException:getArguments().
请解释一下我做错了什么.
谢谢!

编辑:
我发现在onCreateView之后调用newInstance()方法,所以我将代码从它移到了onCreate,但问题并没有避免.

090*_*9EM 10

这意味着片段实例化时没有提供任何参数...

你可以通过做这样的事情来检查是否提供了参数......

Bundle arguments = getArguments();
if (arguments != null)
{
    // then you have arguments
} else {
    // no arguments supplied...
}
Run Code Online (Sandbox Code Playgroud)

好的 - 我误解了你的问题......

在执行putParcelable时sp是否为null?