gpt4 book ai didi

android - 将 fragment 添加到 ListView 项中

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:21:06 26 4
gpt4 key购买 nike

我想为 ListView 中的每个项目创建一个 fragment ,因为我想分离出一些逻辑。我正在为每个项目使用 View 持有者。如果 View 不存在,我将创建一个新 fragment 并将其添加到容器中。

holder.mMyFragment = new MyFragment(mActivity, this);
mActivity.getSupportFragmentManager().beginTransaction().add(R.id.my_container, holder.mMyFragment).commit();

同样对于每个项目,我调用 holder.mMyFragment.setUi(dataSource, position) 以根据数据源和位置设置 fragment 的 UI。

我遇到的问题是我在 fragment 类的 onCreateView 方法中初始化了 fragment 的 UI 元素,但是当我将 fragment 添加到项目时它没有被调用。所以稍后当我调用 setUi() 时,它在 fragment 中使用了一些 UI 元素,它提示 NullPointerException。有人有建议吗?谢谢!

最佳答案

I want to have a fragment for each item in a listview, because I want to separate some logic out.

您不能将 fragment 用作列表项 View ,因为 API 不允许 - ViewFragment 甚至不相关,因此您无法像那样使用它。创建自定义 View 并使用适配器 getViewTypeCountgetView 来使用不同的列表项行为。

Fragment由Activity的FragmentManager或其他Fragment的子FragmentManager管理;而列表项 View 由 ListView 和 ListAdapter 管理。您可以在 Fragment 中使用 ListView,但反之则不行。

关于android - 将 fragment 添加到 ListView 项中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18645316/

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