如何自定义ActionProvider
2015-05-12 15:09
120 查看
自定义一个MyActionProvider类,继承v4包下的ActionProvider(使用兼容Theme)
重写hasSubMenu(),返回true
重写onPrepareSubMenu()方法,设置submenu的title、icon、点击事件
4、在menu.xml中注册item
这样就简单的设置了一个ActionProvier,点击会出现两个subtitle
重写hasSubMenu(),返回true
重写onPrepareSubMenu()方法,设置submenu的title、icon、点击事件
package com.example.actionbartest.utils; import android.R; import android.content.Context; import android.support.v4.view.ActionProvider; import android.view.MenuItem; import android.view.MenuItem.OnMenuItemClickListener; import android.view.SubMenu; import android.view.View; import android.widget.Toast; /** * 写一个带有自定义下拉submenu的ActionProvider * @author Frank * */ public class MyActionProvider extends ActionProvider { public MyActionProvider(Context context) { super(context); // TODO Auto-generated constructor stub } @Override public View onCreateActionView() { // TODO Auto-generated method stub return null; } /** * 重写hasSubMenu,返回true。 */ @Override public boolean hasSubMenu() { // TODO Auto-generated method stub return true; } @Override public void onPrepareSubMenu(SubMenu subMenu) { // TODO Auto-generated method stub subMenu.clear(); subMenu.add("sub title").setIcon(R.drawable.ic_dialog_email).setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { // TODO Auto-generated method stub Toast.makeText(getContext(), "this is sub1", Toast.LENGTH_SHORT).show(); return true; } }); subMenu.add("sub title2").setIcon(R.drawable.ic_dialog_map).setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { // TODO Auto-generated method stub Toast.makeText(getContext(), "this is sub2", Toast.LENGTH_SHORT).show(); return true; } }); } }
4、在menu.xml中注册item
<item android:id="@+id/action_show" android:icon="@drawable/ic_action_alarms" android:title="Show" app:actionProviderClass= "com.example.actionbartest.utils.MyActionProvider" app:showAsAction="always"/>
这样就简单的设置了一个ActionProvier,点击会出现两个subtitle
相关文章推荐
- C#中如何将List<自定义>转为Json格式 及相关函数-DataContractJsonSerializer
- Android 如何 画 柱状图 -------自定义View
- 如何自定义JSR-303标准的validator
- Android 如何自定义FragmentTabHost中某一个Tab的点击效果
- centos 如何强制卸载php以及自定义安装
- 自定义ListView,如何实现下拉刷新
- 也来谈谈DataPager控件如何自定义样式
- Android中如何在“自定义布局”中“动态”添加控件
- 如何在aspx页面中使用ascx控件(用户自定义的一个控件)?
- 【OpenWRT之旅】如何自定义一个配置文件的设置界面
- VS中如何添加自定义代码片段——偷懒小技巧
- Win7如何自定义鼠标右键菜单 添加新建文本文档
- VS2015如何自定义类模板、我的模板——原来这么简单!
- rn笔记:如何给自定义组件传递参属性
- Eclipse 如何自定义java class注释
- iOS开发笔记--如何自定义启动画面Default.png加载时间
- iOS ShardSDK-如何自定义分享菜单中的平台列表
- 如何在 Windows NT 和 Windows 2000 中使用自定义页面大小打印
- WordPress DIY (1)——WP如何自定义表情文件?
- 如何在ubuntu上基于自定义内核安装systemtap