gpt4 book ai didi

android - 转换异常 : after Updating Fragment from ViewPager

转载 作者:行者123 更新时间:2023-11-30 03:26:40 24 4
gpt4 key购买 nike

我正在更新我的 fragment 编号 2 使用:

@Override
public int getItemPosition(Object object) {
FragmentPage2 f = (FragmentPage2) object;
if (f != null) {
f.update();
}
return super.getItemPosition(object);
}

现在,当我在 getItem(int position) 中添加额外的和不同的 Fragment 时,一切似乎都运行良好。但是,当我运行 mPager.getAdapter().notifyDataSetChanged(); 时,它会抛出:

08-07 19:45:50.844: E/AndroidRuntime(17776): java.lang.ClassCastException: com.foodbuilder.FragmentPage1 cannot be cast to com.foodbuilder.FragmentPage2
08-07 19:45:50.844: E/AndroidRuntime(17776): at com.foodbuilder.MainActivity$MyAdapter.getItemPosition(MainActivity.java:967)
08-07 19:45:50.844: E/AndroidRuntime(17776): at android.support.v4.view.ViewPager.dataSetChanged(ViewPager.java:851)
08-07 19:45:50.844: E/AndroidRuntime(17776): at android.support.v4.view.ViewPager$PagerObserver.onChanged(ViewPager.java:2772)
08-07 19:45:50.844: E/AndroidRuntime(17776): at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
08-07 19:45:50.844: E/AndroidRuntime(17776): at android.support.v4.view.PagerAdapter.notifyDataSetChanged(PagerAdapter.java:276)
08-07 19:45:50.844: E/AndroidRuntime(17776): at com.foodbuilder.MainActivity.onDialogPositiveClick(MainActivity.java:888)
08-07 19:45:50.844: E/AndroidRuntime(17776): at com.foodbuilder.TablesDialogFragment$2.onClick(TablesDialogFragment.java:57)
08-07 19:45:50.844: E/AndroidRuntime(17776): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
`

发生了什么事?非常感谢。

最佳答案

@Override
public int getItemPosition(Object object) {
if(object != null && object instanceof FragmentPage2){
FragmentPage2 f = (FragmentPage2) object;
f.update();
}
return super.getItemPosition(object);
}

同样,您可以获得对象类并检查它是否可从 FragmentPage2.class 分配:

if(object.getClass().isAssignalbeFrom(FragmentPage2.class))

发生这种情况是因为您有不同的类继承 Fragment 并且 getItemPosition() 不关心对象的类型,但您所做的转换确实关心对象的类型。

希望对您有所帮助。

关于android - 转换异常 : after Updating Fragment from ViewPager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18115788/

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