相关疑难解决方法(0)

将片段添加到listview项目中

我想为listview中的每个项目创建一个片段,因为我想将一些逻辑分开.我正在为每个项目使用视图持有者.如果视图不存在,我创建一个新片段并将其添加到容器中.

holder.mMyFragment = new MyFragment(mActivity, this);
mActivity.getSupportFragmentManager().beginTransaction().add(R.id.my_container, holder.mMyFragment).commit();
Run Code Online (Sandbox Code Playgroud)

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

我遇到的问题是我在片段类的onCreateView方法中初始化片段的UI元素,但是当我将片段添加到项目时它不会被调用.所以后来当我调用setUi()使用片段中的一些UI元素时,它会抱怨NullPointerException.有没有人有建议?谢谢!

android android-listview android-fragments

9
推荐指数
2
解决办法
2万
查看次数

在RecyclerView项目中替换片段

在我的RecyclerView中,我需要将部分项目替换为我的片段.但替换回收站视图中的第一项.我在做什么是错的?

我的容器(在回收商视图项目中):

...
<FrameLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:id="@+id/container" />
...
Run Code Online (Sandbox Code Playgroud)

我在RecyclerView适配器中的更新代码:

...
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {

...

MyFragment fragment = MyFragment.newInstance("fragment1");
fragmentManager.beginTransaction().replace(R.id.container, fragment).commit();

...

}
...
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-recyclerview

7
推荐指数
2
解决办法
1万
查看次数