androidのActionbar
1. ActionBar关键属性
//获取ActionBar代码需写在setContentView方法后
ActionBar actionBar = getActionBar();
//设置操作栏导航下拉列表模式
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
//设置操作栏导航Tab模式
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
//实现返回主页需添加
actionBar.setHomeButtonEnabled(true);
这个属性使用需要添加:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(this, MainActivity2.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
//隐藏actionbar 图标旁title文本
actionBar.setDisplayShowTitleEnabled(false);

2. 关键代码
public class ActionBarTestActivity extends Activity{
private static final String TAG = "ActionBarTestActivity";
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.contents);

//资源布局的获取必须在调用之前actionBar.setListNavigationCallbacks()定义,否则会报空指针异常
SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.action_list, android.R.layout.simple_spinner_dropdown_item);

//获取ActionBar代码需写在setContentView方法后
ActionBar actionBar = getActionBar();

//设置操作栏导航下拉列表模式
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

//设置导航列表回调响应
actionBar.setListNavigationCallbacks(mSpinnerAdapter, new mNavigationCallback());

//实现返回主页需添加
actionBar.setHomeButtonEnabled(true);
Log.i(TAG, "height"+actionBar.getHeight()); //打印actionbar高度

Tab tab = actionBar.newTab().setText(R.string.tab1).setTabListener(
new TabListener<tab1Fragment>(this, "tab1", tab1Fragment.class));
actionBar.addTab(tab);

tab = actionBar.newTab().setText(R.string.tab2).setTabListener(
new TabListener<tab2Fragment>(this, "tab2", tab2Fragment.class));
actionBar.addTab(tab);

tab = actionBar.newTab().setText(R.string.tab3).setTabListener(
new TabListener<tab3Fragment>(this, "tab3", tab3Fragment.class));
actionBar.addTab(tab);
}

//为操作栏添加菜单
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menus, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case android.R.id.home:
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}

//下拉列表导航的监听类
public class mNavigationCallback implements ActionBar.OnNavigationListener{
String[] listNames = getResources().getStringArray(R.array.action_list);
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId){
ListFragment listFragment = new ListFragment();
FragmentManager manager = getFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
ft.replace(R.id.titles, listFragment, listNames[itemPosition]);
ft.commit();
return true;
}
}
}

更多相关文章

  1. Android发送短信
  2. android EditText 添加图片表情以及在四个方向上绘制图片
  3. Android(安卓)config.gradle
  4. Android当方法总数超过64K时(Android(安卓)Studio)
  5. Android开机自启
  6. Android(安卓)View转换成图片保存
  7. Android(安卓)方法数超过64k限制的解决办法
  8. Android中实现Launcher功能之一 ----- 添加快捷方式
  9. Android(安卓)studio SDK6.0 不支持HttpClient解决办法

随机推荐

  1. android:layout_gravity 和 android:grav
  2. Android(安卓)常用技术总览
  3. 2011年,Android星光不再闪烁
  4. Android(安卓)应用程序基础知识(1)
  5. Android热更新实现原理
  6. 详解Android主流框架不可或缺的基石
  7. Android(安卓)面试必备 - 系统、App、Act
  8. Linux/Android——input系统之 kernel层
  9. Android音频简介
  10. ANDROID Porting系列一、ANDROID编译系统