gpt4 book ai didi

android - 更改方向调用 onpageselected 在 oncreateview 之前

转载 作者:行者123 更新时间:2023-12-04 11:34:33 26 4
gpt4 key购买 nike

我有一个 ViewPager有 3 个 fragment ;在我处理的主要 Activity 中 onPageChangeListener :

private class CustomPageChangeListener extends ViewPager.SimpleOnPageChangeListener{

@Override
public void onPageSelected(int position) {

fragments.get(position).onShowedFragment(context);
super.onPageSelected(position);
}
}

调用 onShowedFragment(context)将数据加载到 fragment 中(我按需加载数据)。我将数据加载到 ListView :
@Override
public void onShowedFragment(Context context) {
databaseService = DatabaseService.getInstance(context);
mAdapter = new Capitulo100ListAdapter(context);
databaseService.capitulo100ObjectSet.setAdapter(mAdapter);
lst100.setAdapter(mAdapter);

try {
//load my data
} catch (Exception e) {
//...
}
super.onShowedFragment(context);
}

当我旋转设备时,Android 会重新创建 Activity 并调用 onPageSelected , 并调用方法 onShowedFragment在我的 fragment 上,但当时名为 lst100 的 ListView 为空(我在 fragment 的 onCreateView 方法中初始化 View ),然后行 lst100.setAdapter(mAdapter)导致错误。

我没有使用 android:configChanges
设备旋转后创建 ListView 时如何上传数据?

最佳答案

    private class CustomPageChangeListener extends ViewPager.SimpleOnPageChangeListener{

@Override
public void onPageSelected(int position) {
// call super.onPageSelected() before onShowedFragment()
super.onPageSelected(position);
fragments.get(position).onShowedFragment(context);

}
}
//在onCreateView()中初始化 View
databaseService = DatabaseService.getInstance(context);
mAdapter = new Capitulo100ListAdapter(context);
databaseService.capitulo100ObjectSet.setAdapter(mAdapter);
//如果列表不为空,则设置适配器。
   @Override
public void onShowedFragment(Context context) {
if(lst!=null)
lst100.setAdapter(mAdapter);

try {
//load my data
} catch (Exception e) {
//...
}
super.onShowedFragment(context);
}
//如果仍然无法正常工作,请使用 MVVM 架构组件。它将处理与 Activity 重新创建相关的所有问题。

关于android - 更改方向调用 onpageselected 在 oncreateview 之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24071304/

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