1
我使用的ViewPagerIndicator库的修改版本为SampleTabsDefault.java
。AsyncTask完成时加载TabPageIndicator
我想要什么:
我想通过AsyncTask
加载在后台的一些数据,并调用setAdapter
当任务完成。
问题:
我收到的错误:ViewPager
尚未绑定。
代码:当任务完成后
public class SampleTabsDefault extends FragmentActivity {
private static final String[] CONTENT = new String[] { "Recent", "Artists",
"Albums", "Songs", "Playlists", "Genres" };
FragmentPagerAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_tabs);
new LoadContentTask().execute();
}
private void loadContent() {
// TODO Auto-generated method stub
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(adapter);
TabPageIndicator indicator = (TabPageIndicator) findViewById(R.id.indicator);
indicator.setViewPager(pager);
}
private class LoadContentTask extends AsyncTask<Object, Object, Object> {
@Override
protected Object doInBackground(Object... arg) {
adapter = new GoogleMusicAdapter(getSupportFragmentManager());
return true;
}
protected void onPostExecute(Object result) {
// process result
loadContent();
}
}
class GoogleMusicAdapter extends FragmentPagerAdapter {
public GoogleMusicAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return TestFragment.newInstance(CONTENT[position % CONTENT.length]);
}
@Override
public CharSequence getPageTitle(int position) {
return CONTENT[position % CONTENT.length].toUpperCase();
}
@Override
public int getCount() {
return CONTENT.length;
}
}
}