android之ActionBarActivity的用法
2015-07-15 11:44
615 查看
ActionBarActivity是从api 18(android4.3) 开始出现的(需要项目导入v7包),而在这之前,api11上就允许使用ActionBar了。其实ActiveBarActivity的使用非常简单,不过网上demo比较没有详细介绍的。
我将通过一个例子来详细ActionBarActivity的使用。
1、首先创建一个简单的android项目,项目名称为ActionBarActivityDemo。注意:target中的api需要在api18以上
2、我们自己写的一个方法(setActionBarLayout),该方法设置左、右边的图片及中间部分的标题栏信息。
1)通过android.support.v7.app.ActionBarActivity.getSupportActionBar();获得系统ActionBar对象,如果你创建的工程不是继承ActionBarActivity,将会返回null。
2)使用LayoutInflater对象设置布局,并设置ActionBar布局参数,通过setCustomView(view,params);
3)设置左、右按钮的事件。
@Override
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.menu_left:
this.finish();
break;
case R.id.menu_right:
Intent intent = new Intent(this, MenuActivity.class);
startActivity(intent);
break;
case R.id.menu_title_tv:
Log.e(TAG, "title");
break;
}
}
我将通过一个例子来详细ActionBarActivity的使用。
1、首先创建一个简单的android项目,项目名称为ActionBarActivityDemo。注意:target中的api需要在api18以上
2、我们自己写的一个方法(setActionBarLayout),该方法设置左、右边的图片及中间部分的标题栏信息。
1)通过android.support.v7.app.ActionBarActivity.getSupportActionBar();获得系统ActionBar对象,如果你创建的工程不是继承ActionBarActivity,将会返回null。
2)使用LayoutInflater对象设置布局,并设置ActionBar布局参数,通过setCustomView(view,params);
public View setActionBarLayout(Integer left, String title, Integer right) { ActionBar actionBar = getSupportActionBar(); if (null != actionBar) { if (actionBar != null) { actionBar.setTitle(""); } actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayShowHomeEnabled(false); actionBar.setDisplayShowCustomEnabled(true); LayoutInflater inflator = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = inflator.inflate(R.layout.actionbar, null); ActionBar.LayoutParams layout = new ActionBar.LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); actionBar.setCustomView(v, layout); ((TextView) v.findViewById(R.id.menu_title_tv)).setText(title); v.findViewById(R.id.menu_title_tv).setOnClickListener(this); if (left != null) { ((ImageButton) v.findViewById(R.id.menu_left)) .setImageResource(left); } else { v.findViewById(R.id.menu_left).setVisibility(View.INVISIBLE); } if (right != null) { ((ImageButton) v.findViewById(R.id.menu_right)) .setImageResource(right); } else { v.findViewById(R.id.menu_right).setVisibility(View.INVISIBLE); } return v; } return null; }
3)设置左、右按钮的事件。
@Override
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.menu_left:
this.finish();
break;
case R.id.menu_right:
Intent intent = new Intent(this, MenuActivity.class);
startActivity(intent);
break;
case R.id.menu_title_tv:
Log.e(TAG, "title");
break;
}
}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories