Android PageViewer加载空白视图…未调用getItem()

Android PageViewer加载空白视图…未调用getItem(),android,android-viewpager,fragment,android-fragmentactivity,layout-inflater,Android,Android Viewpager,Fragment,Android Fragmentactivity,Layout Inflater,我正在尝试使用viewpager创建水平滚动布局。应用程序运行时没有错误,但当设置了activitymain布局并设置了viewpager适配器时,应用程序仅显示一个空白屏幕。在使用Log.d()进行一些调试之后,我发现适配器类中的getItem()方法没有被调用,我怀疑这就是问题所在 我不知道如何解决这个问题,请看一下我下面的代码,如果可以的话,请提供帮助,谢谢大家 Main Activity Code: package myapp.pkg; import android.os.Bundl

我正在尝试使用viewpager创建水平滚动布局。应用程序运行时没有错误,但当设置了activitymain布局并设置了viewpager适配器时,应用程序仅显示一个空白屏幕。在使用Log.d()进行一些调试之后,我发现适配器类中的getItem()方法没有被调用,我怀疑这就是问题所在

我不知道如何解决这个问题,请看一下我下面的代码,如果可以的话,请提供帮助,谢谢大家

Main Activity Code:

package myapp.pkg;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;

public class MainActivity extends FragmentActivity
{

    ViewPager viewpager = null;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d("Debug","content set");

        viewpager = (ViewPager) findViewById(R.id.mainpager);

        FragmentManager fgm = getSupportFragmentManager();

        viewpager.setAdapter(new VPAdapt(fgm));
        Log.d("Debug","adapt set");

    }
}
页面查看器适配器

package myapp.pkg;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.util.Log;

class VPAdapt extends FragmentPagerAdapter 
    {
        public VPAdapt (FragmentManager fm)
        {
            super(fm);
            Log.d("Debug","VPAdapt called");
        }

        public Fragment getItem(int i)
        {
            Log.d("Debug","VPAdapt getItem called i = " + i);

            Fragment frag = null;

            if(i == 0)
            {
                frag = new HomeT();
                Log.d("Debug","HomeT set");
            }
            if(i == 1)
            {
                frag = new NewsT();
                Log.d("Debug","HomeN set");
            }
            if(i == 2)
            {
                frag = new FeatT();
                Log.d("Debug","HomeF set");
            }

            return null;
        }
        @Override
        public int getCount()
        {
            return 0;
        }

    }
片段类之一

package myapp.pkg;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


public class HomeT extends Fragment
{

    @Override
    public View onCreateView(LayoutInflater inf, ViewGroup vg, Bundle savedInstanceState )
    {

        return inf.inflate(R.layout.hometitle, vg, false);
    }


}

问题:

@Override
    public int getCount()
    {
        return 0;
    }
它加载为空,因为指定的片段数为0

解决方案:

@Override
    public int getCount()
    {
        return 0;
    }
返回ViewPagers的
getCount
中的片段数,而不是0

@Override
public int getCount()
{
   return 3;
}

不,不是这样,getItem()方法不依赖于getCount(),如果我将返回值更改为大于0的任何值,则会导致错误nullPointerException@user3167555呵呵??你是什么意思。getCount是ViewPager中的片段数,0表示其中没有任何内容。@user3167555更改此
返回null至<代码>返回框架
并确保getCount
返回3
aahh我明白了,好的,非常感谢,我不认为getItem()依赖于getCount(),我的应用现在可以工作了,谢谢