0

我已經創建了一個應用程序,其中包括像ViewPager和標籤功能。它在api級別19以及除薑餅和蜜蜂之外的其他級別上工作正常。應用程序在啓動時崩潰。應用程序沒有運行薑餅和蜂窩與ViewPager和ActionBar

import android.annotation.SuppressLint; 
import android.annotation.TargetApi; 
import android.app.ActionBar; 
import android.app.ActionBar.Tab; 
import android.app.FragmentTransaction; 
import android.os.Build; 
import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.view.ViewPager; 



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

    public ViewPager viewPager; 
    private PageAdapter mAdapter; 
    private ActionBar actionBar; 

    // Tab titles 
    private String[] tabs = { "Calculate EMI", "EMI Schedule"}; 


    String TabFragmentSchedule; 

    public void setTabFragmentSchedule(String t){ 
     TabFragmentSchedule = t; 
    } 

    public String getTabFragmentSchedule(){ 
     return TabFragmentSchedule; 
    } 


    @SuppressLint("NewApi") 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_home); 


     // Initilization 
     viewPager = (ViewPager) findViewById(R.id.pager); 
     actionBar = getActionBar(); 
     mAdapter = new PageAdapter(getSupportFragmentManager()); 


     viewPager.setAdapter(mAdapter); 
     actionBar.setHomeButtonEnabled(false); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

     // Adding Tabs 
     for (String tab_name : tabs) { 
      actionBar.addTab(actionBar.newTab().setText(tab_name) 
        .setTabListener(this));} 

     /** 
     * on 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) { 
      } 
     });  

    } 

    //method that is called to swipe viewpage on button click from calculation fragment 
    public void switchToFragmentSchedule(){ 
     // viewPager.setCurrentItem(1); 
     viewPager.setCurrentItem(1, false); 
     } 

    @Override 
    public void onTabReselected(Tab tab, FragmentTransaction ft) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onTabSelected(Tab tab, FragmentTransaction ft) { 
     // TODO Auto-generated method stub 

     viewPager.setCurrentItem(tab.getPosition()); 

    } 

    @Override 
    public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
     // TODO Auto-generated method stub 


    } 

} 

我收到以下錯誤

04-28 13:30:25.425: E/AndroidRuntime(712): FATAL EXCEPTION: main 
04-28 13:30:25.425: E/AndroidRuntime(712): java.lang.NoSuchMethodError: android.app.ActionBar.setHomeButtonEnabled 
04-28 13:30:25.425: E/AndroidRuntime(712): at com.initqube.cal_c.HomeActivity.onCreate(HomeActivity.java:53) 
04-28 13:30:25.425: E/AndroidRuntime(712): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 
04-28 13:30:25.425: E/AndroidRuntime(712): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1700) 
04-28 13:30:25.425: E/AndroidRuntime(712): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1752) 
04-28 13:30:25.425: E/AndroidRuntime(712): at android.app.ActivityThread.access$1500(ActivityThread.java:123) 
04-28 13:30:25.425: E/AndroidRuntime(712): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:993) 
04-28 13:30:25.425: E/AndroidRuntime(712): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-28 13:30:25.425: E/AndroidRuntime(712): at android.os.Looper.loop(Looper.java:126) 
04-28 13:30:25.425: E/AndroidRuntime(712): at android.app.ActivityThread.main(ActivityThread.java:3997) 
04-28 13:30:25.425: E/AndroidRuntime(712): at java.lang.reflect.Method.invokeNative(Native Method) 
04-28 13:30:25.425: E/AndroidRuntime(712): at java.lang.reflect.Method.invoke(Method.java:491) 
04-28 13:30:25.425: E/AndroidRuntime(712): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
04-28 13:30:25.425: E/AndroidRuntime(712): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
04-28 13:30:25.425: E/AndroidRuntime(712): at dalvik.system.NativeStart.main(Native Method) 

請幫助

回答

2

您需要使用Support v7 library對舊設備使用ActionBar

然後,您將需要使用ActionBarActivity代替的FragmentActivitygetSupportActionBar而不是getActionBar

+0

我已經將android-support-v7-appcompat添加到了我的項目中。但添加後,我得到了很多錯誤在我的代碼。 – pks

+0

考慮接受我的答案,如果它幫助你 –

相關問題