ViewPagerIndicator によって膨張したレイアウトと runnable 内のプロセスに問題があります。常にそうであるとは限りませんが、すでに数回発生しています。
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() メソッドには、ViewPagerIndicator によって膨張したビューへの参照を作成する Runnable がありますが、これは通常は機能しますが、時々 (〜 20 個の動作 - 1 エラー) その参照で NullPointerException エラーが発生します。
コードにいくつかのログ タグを付けたところ、エラーが発生したときに、inflate プロセスが開始される前に refreshPages メソッドが発生したことがわかりました。なぜこれが起こるのですか?インフレート プロセスが完了した後にのみ、refreshPages メソッドを開始するにはどうすればよいですか? ありがとう