在开写之前需要先引入工程包lib_v7_appcompat,里面为我们提供了ActionBarActivity等许多相关类。
先新建一个activity来继承ActionBarActivity,在里面进行一些基本设置,如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55/**
* ActionBar基础activity,进行统一的属性设置
* 所有顶部带有actionbar的类都继承此类。
*
* @author leetoney
* @time 2015年1月31日17:28:00
*
*/
public class BaseActionBarActivity extends ActionBarActivity {
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// 设置窗口风格为顶部显示Actionbar
supportRequestWindowFeature(WindowCompat.FEATURE_ACTION_BAR);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true); // 决定左上角图标的右侧是否有向左的小箭头, true
// 有小箭头,并且图标可以点击
actionBar.setDisplayShowHomeEnabled(false);
// 使左上角图标是否显示,如果设成false,则没有程序图标,仅仅就个标题,
// 否则,显示应用程序图标,对应id为android.R.id.home,对应ActionBar.DISPLAY_SHOW_HOME
// force use of overflow menu on devices with menu button
// 在actionbar中显示溢出菜单选项
// http://stackoverflow.com/questions/9286822/how-to-force-use-of-overflow-menu-on-devices-with-menu-button
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class
.getDeclaredField(sHasPermanentMenuKey);
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception ex) {
// Ignore
}
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:// 点击返回图标事件
this.finish();
default:
return super.onOptionsItemSelected(item);
}
}
}
然后在自己的Activity中继承这个BaseActionBarActivity,这里只设置了标题。1
2
3
4
5
6
7
8
9public class MainActivity extends BaseActionBarActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().setTitle(返回);
}
}
效果如图: