Skip to content Skip to sidebar Skip to footer

Getsupportactionbar Returns Null

I'm trying to use the ActionBarSherlock library for using Action Bar in older devices. My application run on Android(4.2-Real device). But, when I tried it to open in my older gala

Solution 1:

If you are using ABS, then why are you using TabHost? You can use fragments in ABS to create tabs. And moreover, getSupportActionBar should be imported from import android.support.v7.app.ActionBar

Solution 2:

Action bar with tab:

importstatic com.actionbarsherlock.app.ActionBar.NAVIGATION_MODE_TABS;
import android.app.Dialog;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.NavUtils;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.TabListener;
import com.actionbarsherlock.app.SherlockFragment;
import com.actionbarsherlock.app.SherlockFragmentActivity;

publicclassActivitytestextendsSherlockFragmentActivityimplementsOnPageChangeListener, TabListener {

privateStringTAG="TestActivity: ";
privateFileCache fileCache;
privateViewPager mPager;
privateActionBar ab;
privatestatic final int COUNT = 3;

@OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.property_add);
    mPager = (ViewPager) findViewById(R.id.pager);
    mPager.setAdapter(newMyAdapter(getSupportFragmentManager()));
    mPager.setOnPageChangeListener(this);
    ab = getSupportActionBar();

     if (Utils.hasHoneycomb()) {
         ab.setDisplayShowTitleEnabled(false);
         ab.setDisplayHomeAsUpEnabled(false);
         getSupportActionBar().setDisplayShowHomeEnabled(false);
        }else{
            ab.setDisplayShowTitleEnabled(false);
            ab.setDisplayShowHomeEnabled(false);
        }
    ab.setNavigationMode(NAVIGATION_MODE_TABS);

    ab.addTab(ab.newTab().setText("TAB").setTabListener(this));
    ab.addTab(ab.newTab().setText("TAB 1").setTabListener(this));
    ab.addTab(ab.newTab().setText("TAB 2").setTabListener(this));

}       
@OverridepublicbooleanonCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
    // TODO Auto-generated method stub
    com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.home, menu);
    returnsuper.onCreateOptionsMenu(menu);
}

@OverridepublicbooleanonOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) {
    // TODO Auto-generated method stubswitch (item.getItemId()) {
   case android.R.id.home:
       NavUtils.navigateUpFromSameTask(this);
       returntrue;
   }
   returnsuper.onOptionsItemSelected(item);
}
@OverridepublicvoidonPageScrolled(int position, float positionOffset,int positionOffsetPixels) {}
@OverridepublicvoidonPageSelected(int position) {
    getSupportActionBar().setSelectedNavigationItem(position);
}

@OverridepublicvoidonPageScrollStateChanged(int state) {}

@OverridepublicvoidonTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
    mPager.setCurrentItem(this.getSupportActionBar().getSelectedNavigationIndex()); 
}
@OverridepublicvoidonTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {}
@OverridepublicvoidonTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {}

publicclassMyAdapterextendsFragmentPagerAdapter {
    publicMyAdapter(FragmentManager fm) {
        super(fm);
    }

    @Overridepublic int getCount() {
        returnCOUNT;
    }

    @OverridepublicFragmentgetItem(int position) {
        Fragment f = newFragment();
        switch (position) {
        case0:
            f = Add1FragmentActivity.newInstance(position);
            break;
        case1:
            f = Add2FragmentActivity.newInstance(position);
            break;
        case2:
            f = Add3FragmentActivity.newInstance(position);
            break;
        default:
            AppLog.logString(TAG+"Default");
            thrownewIllegalArgumentException("not this many fragments: " + position);
        }
        return f;
    }
}
}



publicclassUtils {
privateUtils() {};
publicstaticbooleanhasFroyo() {
    // Can use static final constants like FROYO, declared in later versions// of the OS since they are inlined at compile time. This is guaranteed behavior.returnBuild.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO;
}

publicstaticbooleanhasGingerbread() {
    returnBuild.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD;
}

publicstaticbooleanhasHoneycomb() {
    returnBuild.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB;
}

publicstaticbooleanhasHoneycombMR1() {
    returnBuild.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1;
}

publicstaticbooleanhasJellyBean() {
    returnBuild.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
}

}

Post a Comment for "Getsupportactionbar Returns Null"