gpt4 book ai didi

java - FragmentPagerAdapter android.support.v4.app.fragment 无法应用于 android.ap.Fragment

转载 作者:行者123 更新时间:2023-12-01 07:52:20 26 4
gpt4 key购买 nike

首先,我发现了数百个关于这个主题的问题和解决方案,但没有一个对我有帮助。因为我正在做一些不同的解决方法。

FragmentPagerAdapter类构造函数

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;

public class HomePage_Slider extends FragmentPagerAdapter {
public HomePage_Slider(FragmentManager fragmentManager) {
super(fragmentManager);
MyArr.addAll(globalVariable.slider_image_url);
mCount =MyArr.size();
}

public HomePage_Slider(android.app.FragmentManager fragmentManager) {
super(fragmentManager);
}
}

fragment 类

import android.app.Fragment;

public class host extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
rootview = inflater.inflate(R.layout.content_navigation_drawer, container, false);
Top_slider = rootview.findViewById(R.id.home_slider_image);
viewPager = (ViewPager) Top_slider.findViewById(R.id.pager);
viewPager.setAdapter(new HomePage_Slider(getActivity().getFragmentManager()));
}

}

我正在使用支持库的抽屉导航并遵循本教程 Navigation Drawer Tutorial 。并尝试使用 FragmentPagerAdapter显示 slider 。和我的主机 fragment 类使用 import android.app.Fragment;和 FragmentPagerAdapter 类使用 import android.support.v4.app.Fragment;

由于我的主机 Fragment 类不导入 import android.support.v4.app.Fragment;
FragmentPagerAdapter 构造函数给出错误 FragmentPagerAdapter android.support.v4.app.fragment 无法应用于 android.ap.Fragment

在搜索解决方案时,我发现更改导入可以解决问题,但我的其余应用程序将停止工作。使用过import android.app.Fragment;做其他工作,例如调用其他 Fragment 类事务,如下所示

//Host Fragment have this code  to swap to next Fragment on click event on listview
((MainActivity)getActivity()).category_product_page();

// class contains
MainActivity.java

// go to wishlist page
public void category_product_page() {
// Create new fragment and transaction
cart_product newFragment = new cart_product ();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.frame_container, newFragment);
transaction.addToBackStack(null);
// Commit the transaction
transaction.commit();
}

而且我还在主机 Fragment 上做了一些其他工作,这就是为什么我无法更改 import android.app.Fragment "导入android.support.v4.app.Fragment;任何建议都会有所帮助。

请建议我如何克服此错误并防止将来出现这些错误,因为我的第二个应用程序有 slider

最佳答案

FragmentPagerAdapter android.support.v4.app.fragment 无法应用于 android.ap.Fragment

When you are using android.support.v4.app.FragmentManager then you should use getSupportFragmentManager() and if you are using android.app.FragmentManager then call getFragmentManager()

您正在使用import android.support.v4.app.Fragment;

不要

    viewPager.setAdapter(new HomePage_Slider(getActivity().getFragmentManager()));
FragmentTransaction transaction = getFragmentManager().beginTransaction();

     viewPager.setAdapter(new HomePage_Slider(getActivity().getSupportFragmentManager()));
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

您应该调用 getSupportFragmentManager () 而不是 getFragmentManager()

Return the FragmentManager for interacting with fragments associated with this activity.

关于java - FragmentPagerAdapter android.support.v4.app.fragment 无法应用于 android.ap.Fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35081955/

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