androidのActionbar

来源:互联网 发布:mac能玩iphone手游 编辑:程序博客网 时间:2024/06/04 19:05
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;
}   
   }
}
0 0
原创粉丝点击