Android PageViewer加载空白视图…未调用getItem()
我正在尝试使用viewpager创建水平滚动布局。应用程序运行时没有错误,但当设置了activitymain布局并设置了viewpager适配器时,应用程序仅显示一个空白屏幕。在使用Log.d()进行一些调试之后,我发现适配器类中的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
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(),我的应用现在可以工作了,谢谢