2013-03-02 71 views
1

我使用的ViewPagerIndicator库的修改版本为SampleTabsDefault.javaAsyncTask完成时加载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; 
     } 
    } 
} 

回答

0

调用的setContentView。