首先,我在这个主题和解决方案上找到了数百个问题,但没有一个能帮助我。因为我做了一些不同的解决方法。
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);
}
}
片段类
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
来显示滑块。和My Host 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;
做其他工作,比如调用其他像这样的片段类事务
//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();
}
我还在主机片段上做了一些其他的工作,这就是我无法更改import android.app.Fragment "
导入android.support.v4.app.Fragment;
的原因
任何建议都会有所帮助。
请建议我如何克服此错误并防止以后出现这些错误,因为我的第二个应用有滑块
答案 0 :(得分:3)
FragmentPagerAdapter android.support.v4.app.fragment无法应用于android.ap.Fragment
当你使用android.support.v4.app.FragmentManager然后你 应该使用getSupportFragmentManager(),如果您正在使用 android.app.FragmentManager然后调用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()
。
返回FragmentManager以与相关的片段进行交互 通过这项活动。
答案 1 :(得分:1)
getSupportFragmentManager()
而不是
getFragmentManager()
应该这样做。
答案 2 :(得分:1)
更改
import android.app.Fragment;
到
import android.support.v4.app.Fragment;
之后使用
getSupportFragmentManager()
您正在使用
getFragmentManager()
注意:如果您收到错误,只需使用支持导入语句。
答案 3 :(得分:1)
你不能使用2个不同的库来做同样的事情。您应该使用v4.app或app.Fragment为您的所有片段和片段管理器获得工作结果。