gpt4 book ai didi

android fragment getArguments() 返回 null

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:41 30 4
gpt4 key购买 nike

getArguments() 返回 null!

Activity 代码:

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

在 fragment 中:

@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,但问题并没有避免。

最佳答案

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

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

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

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

在您执行 putParcelable 时 sp 是否为 null?

关于android fragment getArguments() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12521396/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com