我的FragmentPagerAdapter中的类型不兼容 [英] Incompatilble types in my FragmentPagerAdapter
问题描述
当我尝试返回一个新片段时出现错误。我怀疑它与导入有关,但我必须错误地使用Android的fragmentpageradapter不会改变任何东西,我不知道想法,只是希望它能够工作,所以我可以在运行的模拟器中看到它。
My FragmentPagerAdapter类:
import android.app.Fragment;
导入android.support.v4.app.FragmentPagerAdapter;
/ **
*由HP_user在01/12/2015创建。
* /
public class SampleFragmentPagerAdapter extends FragmentPagerAdapter {
final int PAGE_COUNT = 3;
private String tabTitles [] = new String [] {Home,Shouts,Shouters};
public SampleFragmentPagerAdapter(android.support.v4.app.FragmentManager fm){
super(fm);
}
@Override
public int getCount(){return PAGE_COUNT; }
@Override
public android.Fragment getItem(int position){
return Home.newInstance(position + 1);
$ b @Override
public CharSequence getPageTitle(int position){
//根据项目位置生成标题
返回tabTitles [position];
我的主要活动等级:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取ViewPager并将其设置为PagerAdapter,以便它可以显示项目
ViewPager viewPager =(ViewPager)findViewById(R.id.viewpager);
viewPager.setAdapter(new SampleFragmentPagerAdapter(getSupportFragmentManager()));
//为PagerSlidingTabStrip提供ViewPager
PagerSlidingTabStrip tabsStrip =(PagerSlidingTabStrip)findViewById(R.id.tabs);
//将视图寻呼机附加到标签条
tabsStrip.setViewPager(viewPager);
}
}
主要活动片段类: p>
public class MainActivityFragment extends Fragment {
public MainActivityFragment(){
}
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,
Bundled savedInstanceState){
return inflater.inflate(R.layout.fragment_page,container,false);
}
}
问题在于 android.support.v4.app.FragmentPagerAdapter
类只能用于支持碎片,即 android.support.v4.app。碎片
。
您有两个选择来修复它。
选择1)使所有碎片 android.support.v4.app.Fragment
实例,而不是 android.app.Fragment
实例。
选择2)使用 android.support.v13.app.FragmentPagerAdapter
类从v13支持库,这使得它可以使用常规片段,在这里查看文档。
I get an error when I try to return a new fragment. I suspect it has something to do with the imports but I must be wrong using just Android's fragmentpageradapter does not change anything, I'm out of ideas and just want it to work so I can see it in the emulator running.
My FragmentPagerAdapter class:
import android.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
/**
* Created by HP_user on 01/12/2015.
*/
public class SampleFragmentPagerAdapter extends FragmentPagerAdapter {
final int PAGE_COUNT = 3;
private String tabTitles[] = new String[] { "Home", "Shouts", "Shouters" };
public SampleFragmentPagerAdapter(android.support.v4.app.FragmentManager fm) {
super(fm);
}
@Override
public int getCount() { return PAGE_COUNT; }
@Override
public android.Fragment getItem(int position) {
return Home.newInstance(position + 1);
}
@Override
public CharSequence getPageTitle(int position) {
// Generate title based on item position
return tabTitles[position];
}
}
My main activity class:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Get the ViewPager and set it's PagerAdapter so that it can display items
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
viewPager.setAdapter(new SampleFragmentPagerAdapter(getSupportFragmentManager()));
// Give the PagerSlidingTabStrip the ViewPager
PagerSlidingTabStrip tabsStrip = (PagerSlidingTabStrip) findViewById(R.id.tabs);
// Attach the view pager to the tab strip
tabsStrip.setViewPager(viewPager);
}
}
Main activity fragment class:
public class MainActivityFragment extends Fragment {
public MainActivityFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_page, container, false);
}
}
The problem is that the android.support.v4.app.FragmentPagerAdapter
class can only be used with support Fragments, i.e. android.support.v4.app.Fragment
.
You have two choices to fix it.
Choice 1) Make all of your Fragments android.support.v4.app.Fragment
instances instead of android.app.Fragment
instances.
Choice 2) Use the android.support.v13.app.FragmentPagerAdapter
class from the v13 support library, which makes it possible to use regular Fragments, see documentation here.
这篇关于我的FragmentPagerAdapter中的类型不兼容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!