2014-12-06 3 views
0

TabHost를 대체하고 ActionBar를 구현하려고하는데 문제가 있습니다. 주 활동 (public class MainActivity extends FragmentActivity implements ActionBar.TabListener{)의 첫 번째 줄에서 오류가 발생합니다 : "MainActivity"클래스는 추상으로 선언되어야합니다 또는 당신은,211를 구현해야 TabListener에서 "onTabSelected (탭,하여 FragmentTransaction)"TabHost를 ActionBar로 바꾸기

public class MainActivity extends FragmentActivity implements ActionBar.TabListener{ 
    private DrawerLayout mDrawerLayout; 
    private ListView mDrawerList; 
    private ActionBarDrawerToggle mDrawerToggle; 
    private CharSequence mDrawerTitle; 
    private CharSequence mTitle; 
    private String[] navMenuTitles; 
    private TypedArray navMenuIcons;  
    private ArrayList<NavDrawerItem> navDrawerItems; 
    private NavDrawerListAdapter adapter; 

    ActionBar actionbar; 
    ViewPager viewpager; 
    FragmentPageAdapter ft; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     setContentView(R.layout.activity_main); 

     viewpager = (ViewPager) findViewById(R.id.pager); 
     ft = new FragmentPageAdapter(getSupportFragmentManager()); 
     actionbar = getActionBar(); 
     viewpager.setAdapter(ft); 
     actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
     actionbar.addTab(actionbar.newTab().setText("Tab1").setTabListener(this)); 
     actionbar.addTab(actionbar.newTab().setText("Tab2").setTabListener(this)); 
     actionbar.addTab(actionbar.newTab().setText("Tab3").setTabListener(this)); 
     viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
      @Override 
      public void onPageSelected(int arg0) { 
       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 
      } 

     }); 

FragmentPageAdapter.java

import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 

public class FragmentPageAdapter extends FragmentPagerAdapter { 
    public FragmentPageAdapter(FragmentManager fm) { 
     super(fm); 
    } 
    @Override 
    public Fragment getItem(int arg0) { 
     // TODO Auto-generated method stub 
     switch (arg0) { 
      case 0: 
       return new Tab1(); 
      case 1: 
       return new Tab2(); 
      case 2: 
       return new Tab3(); 
      default: 
       break; 
     } 
     return null; 
    } 
    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return 3; 
    } 
} 

답변

0

추상 메소드를 구현3210 인터페이스. 그렇게하려면 활동에 다음 함수를 만드십시오.

public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) { 
// Called when a tab that is already selected is chosen again by the user. 
} 
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { 
    // Called when a tab enters the selected state. 
} 
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) { 
    // Called when a tab exits the selected state. 
} 
관련 문제