2013-03-02 76 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。