我的FragmentPagerAdapter中的类型不兼容 [英] Incompatilble types in my FragmentPagerAdapter

查看:463
本文介绍了我的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆