getArguments()返回空值!
活动代码:

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();
 }

片段中:
@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle
                    savedInstanceState) {
        mSearchParams =
               getArguments().getParcelable(SearchResultsActivity.EXTRA_SEARCH_PARAMS);
        return super.onCreateView(inflater, container, savedInstanceState);
    }

还有:
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;
}

但我总是在这里得到nullPointerException:getArguments()。
请解释我做错了什么。
谢谢!
编辑:
我发现newInstance()方法是在onCreateView之后调用的,所以我将代码从它移到了onCreate,但这个问题并没有避免。

最佳答案

这意味着当片段被实例化时没有提供参数…
您可以检查参数是否是通过执行以下操作提供的…

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

好吧-我误解了你的问题…
你现在的sp是空的吗?

09-28 12:15