Android UI开发详解之ActionBarWord下载.docx

上传人:b****6 文档编号:20835512 上传时间:2023-01-25 格式:DOCX 页数:29 大小:25.94KB
下载 相关 举报
Android UI开发详解之ActionBarWord下载.docx_第1页
第1页 / 共29页
Android UI开发详解之ActionBarWord下载.docx_第2页
第2页 / 共29页
Android UI开发详解之ActionBarWord下载.docx_第3页
第3页 / 共29页
Android UI开发详解之ActionBarWord下载.docx_第4页
第4页 / 共29页
Android UI开发详解之ActionBarWord下载.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

Android UI开发详解之ActionBarWord下载.docx

《Android UI开发详解之ActionBarWord下载.docx》由会员分享,可在线阅读,更多相关《Android UI开发详解之ActionBarWord下载.docx(29页珍藏版)》请在冰豆网上搜索。

Android UI开发详解之ActionBarWord下载.docx

三、添加ActionBar的Item

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

packagecom.xys.actionbar;

importandroid.os.Bundle;

importandroid.app.ActionBar;

importandroid.app.Activity;

importandroid.view.Menu;

importandroid.view.MenuItem;

publicclassMainActivity 

extendsActivity{

ActionBaractionBar;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

actionBar=getActionBar();

actionBar.show();

}

publicbooleanonCreateOptionsMenu(Menumenu){

//Inflatethemenu;

thisaddsitemstotheactionbarifitispresent.

super.onCreateOptionsMenu(menu);

//添加菜单项

MenuItemadd=menu.add(0,0,0,"

add"

);

MenuItemdel=menu.add(0,0,0,"

del"

MenuItemsave=menu.add(0,0,0,"

save"

//绑定到ActionBar 

add.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

del.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

save.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

returntrue;

效果如图:

2、通过Menu.xml文件布局

menu/menu.xml

xmlversion="

1.0"

encoding="

utf-8"

menuxmlns:

android="

>

item

android:

id="

@+id/item1"

orderInCategory="

1"

showAsAction="

ifRoom|withText"

title="

@string/save"

/>

2"

@string/edit"

/menu>

程序:

publicclassActionBarXMLActivity 

/**Calledwhentheactivityisfirstcreated.*/

publicvoidonCreate(BundlesavedInstanceState){

setContentView(R.layout.main);

publicbooleanonCreateOptionsMenu(Menumenu)

{

MenuInflaterinflater=getMenuInflater();

inflater.inflate(R.menu.optionsmenu,menu);

效果和上面一样

四、关于菜单项过多

当菜单项过多时,Android会分两种情况进行处理:

1、手机有MENU实体键:

则按下Menu键后会显示剩余菜单项

2、手机没有MENU实体键:

则会在最左边显示一个ActionOverFlow按钮,按下后会显示剩余项菜单,如图:

五、使用带字的ActionItem

1、Actionitem默认格式是如果菜单项含字和图标的话,只显示图标

2、如果想要显示字的效果,在xml里如下设置:

或者在代码里调用setShowAsAction():

setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM)

六、ActionBar的单击事件

1、ActionBar中一个菜单项(即Actionitem)的触发像以前版本中的活动菜单回调方法(onOptionsItemSelected())一样。

2、当用户选择一个Fragment的菜单项时,首先会调用Activity的onOptionsItemSelected()方法,如果该方法返回false,则调用Fragment实现的onOptionsItemSelected()方

法。

publicbooleanonOptionsItemSelected(MenuItemitem){

//TODOAuto-generatedmethodstub

switch(item.getItemId()){

caseR.id.menu_save:

Toast.makeText(getApplicationContext(), 

"

menu_save"

 

0).show();

break;

caseandroid.R.id.home:

Intentintent= 

newIntent(this,MainActivity.class);

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP

|Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(intent);

android.R.id.home"

0)

.show();

default:

returnsuper.onOptionsItemSelected(item);

七、应用的图标

1、默认情况下,应用图标在ActionBar的左侧

2、当用户点击应用bar的时候,系统会调用你的Activity里面的onOptionsItemSelected()方法里面的Android.R.id.HomeID(你的主ID)里定义的事件。

我们可以重写这个方法,添加一个条件执行该行为:

让它跳转到这个应用的主Activity而不是返回的主屏幕。

3、如果选择返回应用的主activity,最好的方式是在创建的Intent中添加FLAG_ACTIVITY_CLEAR_TOP这个标签。

使用这个FLAG_ACTIVITY_CLEAR_TOP标签,如果应用的主Activity已经在activity栈中存在,所有在其上的activity都会被销毁,然后主activity会到栈顶,而不用创建主Activity的的新实例。

publicbooleanonOptionsItemSelected(MenuItemitem)

switch(item.getItemId())

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

当我们想实现用户点击ActionBar图标后返回前一个activity,可以通过在Actionbar设置setDisplayHomeAsUpEnabled(true)来实现。

如图:

八、添加活动视图

1、ActionBar中还可以添加很多其他的视图

我们也可以添加一个视图作为一个ActionItem.我们可以通过在xml元素的android:

actionLayout属性制定我们希望现实布局资源的ID(例如@layout/mysearchview)

我们可以选择添加android:

actionViewClass属性分配与完全限定的类名描述我们想要显示的视图(例如android.widget.SearchView)

importandroid.view.MenuInflater;

protectedvoidonStart(){

super.onStart();

ActionBaractionBar= 

this.getActionBar();

actionBar.setDisplayHomeAsUpEnabled(true);

inflater.inflate(R.menu.main,menu);

这样我们就添加了一个Search的视图,效果如下:

2、其他Item

ActionBar的Item会分有好几个种类,分别有

1).普通类型(带图片带文字)。

2).分享类型。

3).可拓展类型。

4).列表类型。

@+id/menu_collapse"

actionLayout="

@layout/collapsibleview"

icon="

@drawable/search"

ifRoom|collapseActionView"

@string/menu_search"

/item>

@+id/menu_share"

actionProviderClass="

android.widget.ShareActionProvider"

enabled="

true"

ifRoom"

@string/menu_share"

@+id/menu_settings"

@drawable/save"

100"

@string/menu_settings"

@+id/menu_save"

@string/menu_save"

menu>

@+id/action_sort_size"

drawable/ic_menu_sort_by_size"

onClick="

onSort"

@+id/action_sort_alpha"

drawable/ic_menu_sort_alphabetically"

menu_saveItem就是一个最普通的带文字带图片的Item。

能否显示在ActionBar的Item主要看android:

这个属性。

看menu_sitting就永远不会显示出来,只有在按menu时候会显示。

谷歌文档中提供android:

showAsAction总共有五个属性。

never:

永远不会显示。

只会在溢出列表中显示。

ifRoom:

会显示在Item中,但是如果已经有4个或者4个以上的Item时会隐藏在溢出列表中。

always:

无论是否溢出,总会显示。

withText:

Title会显示。

collapseActionView:

可拓展的Item。

3、可分享的Item

看上面代码片段menu_share按钮就是一个可分享的Item。

表示这个Item是个分享Item

在java代码中进行实现:

//添加分享按钮的事件

//4.0以下没有ShareActionProvider

MenuItemmenuItem_share=menu.findItem(R.id.menu_share);

//Gettheproviderandholdontoittoset/changetheshareintent.

mShareActionProvider=(ShareActionProvider)menuItem_share

.getActionProvider();

//IfyouusemorethanoneShareActionProvider,eachforadifferent

//action,

//usethefollowinglinetospecifyauniquehistoryfileforeachone.

//mShareActionProvider.setShareHistoryFileName("

custom_share_history.xml"

//Setthedefaultshareintent

mShareActionProvider.setShareIntent(getDefaultShareIntent());

privateIntentgetDefaultShareIntent(){

Log.i(TAG, 

getDefaultShareIntent"

newIntent(Intent.ACTION_SEND);

intent.setType("

text/plain"

intent.putExtra(Intent.EXTRA_SUBJECT, 

小清新短信闪"

intent.putExtra(Intent.EXTRA_TEXT, 

小清新短信闪1.0"

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

returnintent;

4、可拓展的Item

看到那个放大镜了,就是一个可拓展试的Item,看xml中的menu_collapse。

他有俩个属性是android:

android:

是点item后拓展成的View

collapseActionView"

代表他是一个可拓展的Item

Buttonbtnn;

EditTexteditText;

privateShareActionProvidermShareActionProvider;

publi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1