我在由 ViewPagerIndicator 膨胀的布局和可运行的进程中遇到问题。这种情况并不总是发生,但已经发生过几次。
MainActivity.java
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mAdapter = new GtAdapter(getSupportFragmentManager());
mPager = (ViewPager)findViewById(R.id.pager);
mPager.setOffscreenPageLimit(5);
mPager.setAdapter(mAdapter);
mIndicator = (TabPageIndicator)findViewById(R.id.indicator);
mIndicator.setViewPager(mPager);
mIndicator.setCurrentItem(1);
mIndicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
public void onPageSelected(int position) {
}
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
public void onPageScrollStateChanged(int state) {
}
});
int cod = mAdapter.getItemPosition(0);
refreshPages();
}
在 refreshPages() 方法上,我有一个 Runnable,它对 ViewPagerIndicator 膨胀的视图进行了一些引用,这通常有效,但有时(~ 20 个有效 - 1 个错误)我在该引用中得到一些 NullPointerException 错误。
我通过代码放了一些日志标签,发现报错的时候refreshPages方法发生在inflate进程启动之前。为什么会这样?如何使 refreshPages 方法仅在充气过程完成后才启动?谢谢