【Android 开发教程】自定义ActionBar
2012-05-18 19:15
417 查看
本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。
原书购买地址http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/
在上一节中,菜单选项是没有文字的。如果想要同时显示图标和文字,可以一起使用“|”和MenuItem.SHOW_AS_ACTION_WITH_TEXT常量。
[java] view plaincopyMenuItem mnu1 = menu.add(0, 0, 0, "Item 1");
{
mnu1.setIcon(R.drawable.ic_launcher);
mnu1.setShowAsAction(
MenuItem.SHOW_AS_ACTION_IF_ROOM |
MenuItem.SHOW_AS_ACTION_WITH_TEXT);
}
除了可以点击Action项目,也可以点击ActionBar上面的应用图标。当应用图标被点击的时候,会调用onOptionsItemSelected()方法。如果想识别应用图标被点击了,可以使用adnroid.R.id.home常量。
[java] view plaincopyprivate boolean MenuChoice(MenuItem item)
{
switch (item.getItemId()) {
case android.R.id.home:
Toast.makeText(this,
"You clicked on the Application icon",
Toast.LENGTH_LONG).show();
return true;
case 0:
Toast.makeText(this, "You clicked on Item 1",
Toast.LENGTH_LONG).show();
return true;
case 1:
......
}
如果想让应用图标能被点击,我们需要调用setDisplayHomeAsUpEnable()方法:[java] view plaincopy/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
//actionBar.hide();
//actionBar.show(); //---show it again---
}
当点击应用图标:
一般情况下,一个应用可能包含很多activity,那么应用的图标通常被用来返回主Activity。如果想这么做,就需要一个Intent对象,并使用Intent.FLAG_ACTIVITY_CLEAR_TOP标志。
[java] view plaincopycase android.R.id.home:
Toast.makeText(this,
"You clicked on the Application icon",
Toast.LENGTH_LONG).show();
Intent i = new Intent(this, MyActionBarActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
return true;
使用Intent.FLAG_ACTIVITY_CLEAR_TOP标识,可以确保当点击应用图标的时候,在“返回栈”里面的那些activity都会被清除掉。使用这种方法,如果用户点击返回键,其他的activity将不会再显示出来。
原书购买地址http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/
在上一节中,菜单选项是没有文字的。如果想要同时显示图标和文字,可以一起使用“|”和MenuItem.SHOW_AS_ACTION_WITH_TEXT常量。
[java] view plaincopyMenuItem mnu1 = menu.add(0, 0, 0, "Item 1");
{
mnu1.setIcon(R.drawable.ic_launcher);
mnu1.setShowAsAction(
MenuItem.SHOW_AS_ACTION_IF_ROOM |
MenuItem.SHOW_AS_ACTION_WITH_TEXT);
}
除了可以点击Action项目,也可以点击ActionBar上面的应用图标。当应用图标被点击的时候,会调用onOptionsItemSelected()方法。如果想识别应用图标被点击了,可以使用adnroid.R.id.home常量。
[java] view plaincopyprivate boolean MenuChoice(MenuItem item)
{
switch (item.getItemId()) {
case android.R.id.home:
Toast.makeText(this,
"You clicked on the Application icon",
Toast.LENGTH_LONG).show();
return true;
case 0:
Toast.makeText(this, "You clicked on Item 1",
Toast.LENGTH_LONG).show();
return true;
case 1:
......
}
如果想让应用图标能被点击,我们需要调用setDisplayHomeAsUpEnable()方法:[java] view plaincopy/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
//actionBar.hide();
//actionBar.show(); //---show it again---
}
当点击应用图标:
一般情况下,一个应用可能包含很多activity,那么应用的图标通常被用来返回主Activity。如果想这么做,就需要一个Intent对象,并使用Intent.FLAG_ACTIVITY_CLEAR_TOP标志。
[java] view plaincopycase android.R.id.home:
Toast.makeText(this,
"You clicked on the Application icon",
Toast.LENGTH_LONG).show();
Intent i = new Intent(this, MyActionBarActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
return true;
使用Intent.FLAG_ACTIVITY_CLEAR_TOP标识,可以确保当点击应用图标的时候,在“返回栈”里面的那些activity都会被清除掉。使用这种方法,如果用户点击返回键,其他的activity将不会再显示出来。
相关文章推荐
- 【Android 开发教程】自定义ContentProvider的使用
- 【Android 开发教程】操纵ActionBar
- 【Android 开发教程】添加ActionBar物件
- Android简明开发教程十八:自定义对话框 Transform
- 【Android UI设计与开发】第13期:顶部标题栏(四)自定义ActionBar风格和样式
- Android游戏开发教程之七:自定义SurfaceView
- Android开发教程:自定义ViewGroup方法总结
- Android简明开发教程十八:自定义对话框 Transform
- 【Android UI设计与开发】第13期:顶部标题栏(四)自定义ActionBar风格和样式
- Android简明开发教程十八:自定义对话框 Transform
- 【Android UI设计与开发】第13期:顶部标题栏(四)自定义ActionBar风格和样式
- Android简明开发教程十八:自定义对话框 Transform
- 【Android UI设计与开发】第13期:顶部标题栏(四)自定义ActionBar风格和样式
- 【Android UI设计与开发】第13期:顶部标题栏(四)自定义ActionBar风格和样式 .
- Android应用开发中自定义ViewGroup视图容器的教程
- 【Android 开发教程】自定义ContentProvider
- Android简明开发教程十八:自定义对话框 Transform
- Android简明开发教程十一:自定义Adapter显示列表
- Android 程式开发:(九)使用活动栏 —— 9.3自定义ActionBar项目和程序图标
- 【Android UI设计与开发】第13期:顶部标题栏(四)自定义ActionBar风格和样式