android - getArguments() 在 Fragment 中总是返回 null

标签 android android-fragments

我需要将参数传递给我的 fragment ,但 getArguments() 总是返回 null

    public static PersonFragment newInstance(int columnCount, ArrayList<Person> personenListe) {
    PersonFragment personFragment = new PersonFragment();
    Bundle args = new Bundle();
    args.putSerializable("persList",personenListe);
    args.putInt(ARG_COLUMN_COUNT, columnCount);
    personFragment.setArguments(args);
    return new PersonFragment();
}
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (getArguments() != null) {                              //getAguments() == null !!
        mColumnCount = getArguments().getInt(ARG_COLUMN_COUNT);
        mPersonenListe = (ArrayList<Person>) getArguments().getSerializable("persList");
    }
}

我在 MainActivity 中调用它

openFragment(PersonFragment.newInstance(personenListe.size(), personenListe));

用这个方法

public void openFragment(Fragment fragment) {
    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
    transaction.replace(R.id.container, fragment);
    transaction.addToBackStack(null);
    transaction.commit();
}

最佳答案

您返回的不是您设置参数的 fragment ,而是一个全新的 fragment 。

因此将 newInstance 更改为:

public static PersonFragment newInstance(int columnCount, ArrayList<Person> personenListe) {
    PersonFragment personFragment = new PersonFragment();
    Bundle args = new Bundle();
    args.putSerializable("persList",personenListe);
    args.putInt(ARG_COLUMN_COUNT, columnCount);
    personFragment.setArguments(args);
   //  return new PersonFragment();
    return personFragment ; // <<< change here 
}

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

相关文章:

android - 执行 ant 调试命令时无法成功构建 cordova 项目错误

android - SDK 构建工具更新到 23.1 rc1 后出现意外顶级异常

java - 如何停止单击相同的底部导航项?

android - Youtubeplayer fragment 中的内容进入 viewpager

android - 找不到与给定名称匹配的资源

java - 实现 USSD 功能。将服务绑定(bind)到 PhoneUtils 而无需在每次更新时重新启动手机

java - Android Fragment 实际上没有被替换

java - 关闭对话框后运行方法 - Android

Android ImageView 在 GingerBread 下面的 FrameLayout 中不匹配_parent

android - 如何为展开/折叠 View 制作图标动画?