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"