2014-07-07 3 views
0

내 응용 프로그램 충돌로 보내 주시면되지 않습니다 ..... 그것을 다른 방법은 그 때 나는 스 와이프 때, Tab 그것으로 변경됩니다.탭이 안드로이드

이 코드는 다음과 같습니다

@TargetApi(Build.VERSION_CODES.HONEYCOMB) 
public class AboutUs extends FragmentActivity implements TabListener { 

private ActionBar actionBar; 
ViewPager viewPager; 

@TargetApi(Build.VERSION_CODES.HONEYCOMB) 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.aboutus); 
    intialization(); 

} 

@TargetApi(Build.VERSION_CODES.HONEYCOMB) 
private void intialization() { 
    // TODO Auto-generated method stub 

    actionBar = getActionBar(); 
//this is the line where the application crashes 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

    ActionBar.Tab tab1 = actionBar.newTab(); 
    tab1.setText("MUMTAZ ANWAR"); 
    tab1.setTabListener(this); 

    ActionBar.Tab tab2 = actionBar.newTab(); 
    tab2.setText("CREDIENTIALS"); 
    tab2.setTabListener(this); 

    actionBar.addTab(tab1); 
    actionBar.addTab(tab2); 

    viewPager = (ViewPager) findViewById(R.id.pagger); 
    viewPager.setAdapter(new MyAdapter(getSupportFragmentManager())); 
    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 

     @Override 
     public void onPageSelected(int arg0) { 
      // TODO Auto-generated method stub 
      actionBar.setSelectedNavigationItem(arg0); 
     } 

     @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 

     } 
    }); 

} 

@Override 
public void onTabReselected(Tab tab, FragmentTransaction ft) { 
    // TODO Auto-generated method stub 
    //Log.d("HAMZA", "onTabReselected at " + "position" + tab.getPosition() 
    //  + "name" + tab.getText()); 
} 

@Override 
public void onTabSelected(Tab tab, FragmentTransaction ft) { 
    // TODO Auto-generated method stub 
    //Log.d("HAMZA", "onTabselected at " + "position" + tab.getPosition() 
     // + "name" + tab.getText()); 
//this is the line where the application crashes 
    viewPager.setCurrentItem(tab.getPosition()); 
} 

@Override 
public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
    // TODO Auto-generated method stub 
    //Log.d("HAMZA", "onTabUnselected at " + "position" + tab.getPosition() 
    //  + "name" + tab.getText()); 
} 

} 

MyAdapter.java :

class MyAdapter extends FragmentPagerAdapter { 

public MyAdapter(FragmentManager fm) { 
    super(fm); 
    // TODO Auto-generated constructor stub 
} 

@Override 
public Fragment getItem(int arg0) { 
    // TODO Auto-generated method stub 

    Fragment fragment = null; 
    if (arg0 == 0) { 

     fragment = new BlankFragment(); 
    } 

    if (arg0 == 1) { 

     fragment = new BlankFragmenta(); 
    } 

    return fragment; 
} 

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return 2; 
} 

} 

답변

0

당신이 탭 문을 탭 즉 재주문보기 호출기 초기화 문을 추가하고 추가하기 전에보기 호출기를 초기화하기 만하면됩니다 귀하의 초기화(). 아래를 참조하십시오.

viewPager = (ViewPager) findViewById(R.id.pagger); 
viewPager.setAdapter(new MyAdapter(getSupportFragmentManager())); 
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 

    @Override 
    public void onPageSelected(int arg0) { 
     // TODO Auto-generated method stub 
     actionBar.setSelectedNavigationItem(arg0); 
    } 

    @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 tab1 = actionBar.newTab(); 
     tab1.setText("MUMTAZ ANWAR"); 
     tab1.setTabListener(this); 

    ActionBar.Tab tab2 = actionBar.newTab(); 
    tab2.setText("CREDIENTIALS"); 
    tab2.setTabListener(this); 

    actionBar.addTab(tab1); 
    actionBar.addTab(tab2); 

희망이 도움이됩니다.

+0

해당 작업을하지만 탭 클릭하면 변경되지 않습니다. – user3767207

+0

나는 당신을 얻지 못했습니다! 스 와이프 및 탭 탭을 사용하여 탭 사이를 전환 할 수 있어야합니다. 탭 사이 – humblerookie

+0

예 스위치가 작동하지만 탭 탭은 ... – user3767207

0

나는 humblerookie가 제안했듯이, 그것은 질서의 문제라고 믿습니다. 아래 코드의 순서를 따르십시오. 그것은 당신을 도와야합니다.

//Create View Pager first 
viewPager = (ViewPager) findViewById(R.id.pager); 
actionBar = getSupportActionBar(); 
viewPager.setAdapter(new MyAdapter(getSupportFragmentManager())); 
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

// Add Tabs next 
ActionBar.Tab tab1 = actionBar.newTab(); 
tab1.setText("MUMTAZ ANWAR"); 
tab1.setTabListener(this); 

ActionBar.Tab tab2 = actionBar.newTab(); 
tab2.setText("CREDIENTIALS"); 
tab2.setTabListener(this); 

actionBar.addTab(tab1); 
actionBar.addTab(tab2); 


    // finally, set the pagelistener : swiping the viewpager make respective tab selected 
    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 

     @Override 
     public void onPageSelected(int position) { 
      // on changing the page 
      // make respected tab selected 
      actionBar.setSelectedNavigationItem(position); 
     } 

     @Override 
     public void onPageScrolled(int arg0, float arg1, int arg2) { 
     } 

     @Override 
     public void onPageScrollStateChanged(int arg0) { 
     } 
    }); 
관련 문제