の修正版でViewPagerIndicatorライブラリを使用しSampleTabsDefault.java
ます。
私が欲しいもの:
バックグラウンドでいくつかのデータをロードし、タスクが終了したときに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;
}
}
}