在 XML 中指定 *** 作
所有的 *** 作按钮和 action overflow 中其他可用的条目都被定义在 menu资源 的 XML 文件中。通过在项目的res/menu目录中新增一个 XML 文件来为 action bar 添加 *** 作。
为想要添加到 action bar 中的每个条目添加一个 <item> 元素。例如:
res/menu/main_activity_actions.xml
如果为了兼容 Android 2.1 的版本使用了 Support 库,在android命名空间下showAsAction属性是不可用的。
Support 库会提供替代它的属性,我们必须声明自己的 XML 命名空间,并且使用该命名空间作为属性前缀。(一个自定义 XML 命名空间需要以我们的 app 名称为基础,但是可以取任何想要的名称,它的作用域仅仅在我们声明的文件之内。)例如:res/menu/main_activity_actions.xml
为 Action Bar 添加 *** 作
在 activity 中实现 onCreateOptionsMenu() 回调方法来inflate菜单资源从而获取 Menu 对象。例如:
为 *** 作按钮添加响应事件
调用 activity 中 onOptionsItemSelected() 。在该方法的实现里面调用 MenuItem 的 getItemId() 来判断哪个条目被按下 - 返回的 ID。例如:
为下级 Activity 添加向上按钮
当运行在 Android 4.1(API level 16) 或更高版本,或者使用 Support 库中的 ActionBarActivity 时,实现向上导航需要在 manifest 文件中声明父 activity ,同时在 action bar 中设置向上按钮可用。
如何在 manifest 中声明一个 activity 的父类,例如:
然后,通过调用 setDisplayHomeAsUpEnabled() 来把 app icon 设置成可用的向上按钮:
由于系统已经知道MainActivity是DisplayMessageActivity的父 activity,当用户按下向上按钮时,系统会导航到恰当的父 activity - 你不需要去处理向上按钮的事件。
源地址:http://wiki.jikexueyuan.com/project/android-training-geek/adding-buttons.html
Actionbar是Activity的东西,Fragment是运行在Activity中的碎片,要使用actionBar要通过getActivity来处理、。1.Fragment是android3.0引入的新控件,果应用使用在3.0以下、1.6及以上的版本,需要引入v4包。
2.Fragment支持在不同的Activity中使用并且可以处理自己的输入事件以及生命周期方法等。
3.Fr期方法依赖于Activity的生命周期,例如一个Activity的onPause()的生命周期方法被调用的时候这个Activity中的所有的Fragment的onPause()方法也将被调用。
4.FragmentManager提供了对Activity运行时的Fragment的添加、删除、替换的 *** 作。在Activity运行期间可以添加Fragment而不是在XML布局文件中进行定义。如果打算在Activity中改变Fragment的生命过程。如果要执行添加、删除、修改的 *** 作,必须通过FragmentManager的对象获得一个FragmentTransaction对象,通过它的API来执行这些 *** 作。
5.两个单独的Fragment之间是不应该进行通信的。应该使用所存在的Activity作为沟通的纽带。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)