gpt4 book ai didi

android - 刷新 View 分页器 fragment 上的内容

转载 作者:行者123 更新时间:2023-11-30 02:01:09 25 4
gpt4 key购买 nike

我有一个活动,该活动通过视图分页器包含两个片段。
我在片段A上显示了一个arraylist,在片段B上显示了项的列表视图。当我检查其中一些项并单击按钮时,它们将传递到片段A的数组列表,应首先显示。

数据确实按预期传递给片段A。
问题在于它不显示刷新的数组列表。

我尝试将ViewPager成员设为静态,然后每次单击片段B中的该按钮以将内容传递给片段A时,将其传递给片段A。
然后在片段A中,我对该适配器成员执行notifyDataSetChanged()。
它仍然不起作用。

public class PagerActivity extends FragmentActivity implements  MainFragment.AddToHistoryInterface
{
static ViewPagerAdapter adapter;

@Override
protected void onCreate( Bundle savedInstanceState )
{
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_pager );

ViewPager viewPager = ( ViewPager ) findViewById( R.id.viewPager );
adapter = new ViewPagerAdapter( getSupportFragmentManager() );
viewPager.setAdapter( adapter );
}


public static void removeFromB( List<Password> listFromB )
{
MainFragment.fromBtoA( listFromB, adapter );
}


然后,在片段A中:
....
...

public static void fromHistoryToMain( List<Password> listBackToMain, ViewPagerAdapter adapter )
{
passwordsList.addAll( 0, listBackToMain );
adapter.notifyDataSetChanged();
}

最佳答案

首先创建一个界面

public interface UpdateableFragment {
public void update(UpdateData xyzData);
}


您的片段应实现UpdateableFragment接口

public class SomeFragment extends Fragment implements
UpdateableFragment{

@Override
public void update(UpdateData xyzData) {
// do whatever you want to update your data
}
}


然后在这样的适配器中覆盖getItemPosition方法

@Override
public int getItemPosition(Object object) {
if (object instanceof UpdateableFragment) {
((UpdateableFragment) object).update(updateData);
}
//don't return POSITION_NONE, avoid fragment recreation.
return super.getItemPosition(object);
}


然后调用此方法以更新视图分页器片段

public void refreshContent(UpdateData xyzData) {
this.updateData = xyzData;
notifyDataSetChanged();
}

关于android - 刷新 View 分页器 fragment 上的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31454026/

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