gpt4 book ai didi

java - 使用兼容性时从 Activity 中获取 FragmentTransaction 的问题

转载 作者:太空宇宙 更新时间:2023-11-03 11:40:53 25 4
gpt4 key购买 nike

所以我正在开发一个项目,我想在旧版 Android 设备上运行,所以我使用了兼容性库。我使用的是类似于 NewsReader 的界面,只是这两个 fragment 不是在 Activity 中,而是嵌入在另一个 fragment 中,而 fragment 又嵌入在 ViewPagger 中。

为简单起见,我们将使用这些术语...

Activity -> ViewPager -> ContainerFragment->Fragment1
->Fragment2

在 ContainerFragment 中,如果它是手机,我试图用 fragment 2 替换 fragment 1,所以我在 ContainerFragment 中尝试了以下代码...

import android.support.v4.app.FragmentTransaction;    
...
public void onBarSelected(Integer index) {
selectedBarIndex = index;
if (isDualPane) {
// display it on the article fragment
mBarEditFragment.displayBar(index);
}
else {
// use separate activity
FragmentActivity activity = (FragmentActivity)getActivity();
FragmentTransaction ft = activity.getFragmentManager().beginTransaction();
ft.replace(R.id.bar_container, new BarEditFragment(),R.id.bar_edit);
}

}

但是我得到以下编译错误

Type mismatch: cannot convert from android.app.FragmentTransaction 
to android.support.v4.app.FragmentTransaction

我仔细检查了一下, Activity 确实扩展了 FragmentActivity 的兼容性。

更新

试图改变为...

然后得到....

MainActivity activity = (MainActivity)getActivity();
Object test = activity.getFragmentManager().beginTransaction();
FragmentTransaction ft = (FragmentTransaction)test;
ft.replace(R.id.bar_container, new BarEditFragment());

我得到了...

java.lang.ClassCastException: android.app.BackStackRecord cannot be cast to android.support.v4.app.FragmentTransaction

有什么想法吗?

回答:

我想出了我的问题问题是你不应该从 Activity 中获取 fragment 管理器,而应该从 fragment 中获取它。

这有效....

public void onBarSelected(Integer index) {
selectedBarIndex = index;
if (isDualPane) {
// display it on the article fragment
//mBarEditFragment.displayBar(index);
}
else {
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.bar_container, new BarEditFragment());
ft.commit();
}

}

最佳答案

使用

解决了同样的问题

getSupportFragmentManager()

谢谢

关于java - 使用兼容性时从 Activity 中获取 FragmentTransaction 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9241936/

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