1

我使用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;
        }
    }
}
4

1 回答 1

0

任务完成后调用 setContentView。

于 2013-03-07T04:39:12.317 回答