0

バックグラウンドでオンライン xml からデータを解析し、リストビューに表示する方法を知る必要があります。

現在、FragmentActivity を拡張するクラスがあります。以下はクラスのレイアウトです

 <android.support.v4.view.ViewPager
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/pager"
   android:layout_width="match_parent" 
   android:layout_height="match_parent"/>

以下のように、クラスでアクションバータブとビューページャーを宣言しました

    actionbar = getActionBar();      
    actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);    
    actionbar.setDisplayShowTitleEnabled(false);       
    actionbar.setDisplayUseLogoEnabled(true);      
    viewPager=(ViewPager)findViewById(R.id.pager);
    viewPagerAdapter=new ViewPagerAdapter(getSupportFragmentManager());
    viewPager.setAdapter(viewPagerAdapter);
    viewPager.setOffscreenPageLimit(6);       
    viewPager.setOnPageChangeListener(new OnPageChangeListener() {

    @Override
    public void onPageSelected(int position) {
        // TODO Auto-generated method stub
        getActionBar().setSelectedNavigationItem(position);

    }

    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onPageScrollStateChanged(int arg0) {
        // TODO Auto-generated method stub

    }
});





     ActionBar.Tab TabOne = actionbar.newTab().setText("TabOne ");
     ActionBar.Tab TabTwo = actionbar.newTab().setText("TabTwo ");
     ActionBar.Tab TabThree = actionbar.newTab().setText("TabThree ");
     ActionBar.Tab TabFour = actionbar.newTab().setText("TabFour ");
     ActionBar.Tab TabFive = actionbar.newTab().setText("TabFive ");
     ActionBar.Tab TabSix = actionbar.newTab().setText("TabSix ");


     TabOneActivity one = new TabOneActivity ();        
     TabTwoActivity two= new TabTwoActivity ();
     TabThreeActivity  three= new TabThreeActivity  ();
     TabFourActivity four= new TabFourActivity ();
     TabOFiveActivity five= new TabOFiveActivity ();
     TabSixActivity six=new TabSixActivity ();


     TabOne .setTabListener(new MyTabsListener(one));
     TabTwo .setTabListener(new MyTabsListener(two));
     TabThree .setTabListener(new MyTabsListener(three));
     TabFour .setTabListener(new MyTabsListener(four));
     TabFive .setTabListener(new MyTabsListener(five));
     TabSix .setTabListener(new MyTabsListener(six));

     actionbar.addTab(TabOne);
     actionbar.addTab(TabTwo);
     actionbar.addTab(TabThree);
     actionbar.addTab(TabFour);        
     actionbar.addTab(TabFive);
     actionbar.addTab(TabSix);  

MyTabListener と ViewPageAdapter の 2 つの内部クラスがあります。以下は MyTabListener クラスです

  public class MyTabsListener implements ActionBar.TabListener {
protected TabOneActivity oneContext;
protected TabTwoActivity twoContext;
protected TabThreeActivity threeContext;
protected TabFourActivity fourContext;
protected TabFiveActivity fiveContext;
protected TabSixActivity sixcontext;


public MyTabsListener(TabOneActivity onetab) {
    // TODO Auto-generated constructor stub
    this.oneContext=onetab;
}

public MyTabsListener(TabTwoActivity twoTab) {
    // TODO Auto-generated constructor stub
    this.twoContext=twoTab;
}
public MyTabsListener(TabThreeActivity threeTab) {
    // TODO Auto-generated constructor stub
    this.threeContext=threeTab;
}
public MyTabsListener(TabFourActivity fourTab) {
    this.fourContext= fourTab;
}
public MyTabsListener(TabFiveActivity fiveTab) {
    // TODO Auto-generated constructor stub
    this.fiveContext=fiveTab;
} 
public MyTabsListener(TabSixActivity sixTab) {
    // TODO Auto-generated constructor stub
    this.sixContext=sixTab;
}



@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {      
    viewPager.setCurrentItem(tab.getPosition());
}

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {        
    viewPager.setCurrentItem(tab.getPosition());

}

以下はViewPagerAdapterクラスです

 public class ViewPagerAdapter extends FragmentPagerAdapter {

final int PAGE_COUNT = 6;
public ViewPagerAdapter(FragmentManager supportFragmentManager) {
    // TODO Auto-generated constructor stub
    super(supportFragmentManager);
}

@Override
public Fragment getItem(int position) {
    // TODO Auto-generated method stub
    switch(position){
case 0:
    return TabOneActivity.create(position);     
case 1:
    return TabTwoActivity.create(position);
case 2:
    return TabThreeActivity.create(position);
case 3:
    return TabFourActivity.create(position);
case 4:
    return TabFiveActivity.create(position);
case 5:
    return TabSixActivity.create(position);
default :
    return TabOneActivity.create(position);
 }     
  }
@Override
public int getCount() {
    // TODO Auto-generated method stub
    return PAGE_COUNT;
}

  }

各アクティビティはフラグメントを拡張し、AsyncTask を使用してオンライン xml をヒットおよび解析し、結果をリストビューに表示します。

データがリストビューに取り込まれる前に、プログレスバーを表示しています。

私がする必要があるのは、スプラッシュ画面に進行状況バーを表示することです。これは、バックグラウンドでヒットしてオンラインデータを解析し、1 回のポスト実行でデータをリストビューに表示する必要があります。

ユーザーはメイン画面にデータがロードされるのを待つ必要がなく、代わりにスパルシュ画面でダウンロードされるため、UI の見栄えが良くなります。

これを達成する方法を親切に提案してください。私は FragmentActivity を使用しているため、6 つの異なるフラグメントが 6 つの異なる URL にヒットします。

4

0 に答える 0