Fragment中添加OptionItem
来源:互联网 发布:支持mac的移动硬盘 编辑:程序博客网 时间:2024/06/05 06:12
如果activity没有实现接口, fragment会抛出 ClassCastException 异常. 正常情形下, mListener成员会保持一个到activity的OnArticleSelectedListener实现的引用, 因此fragment A可以通过调用在OnArticleSelectedListener接口中定义的方法分享事件给activity.例如, 如果fragment A是一个 ListFragment的子类, 每次用户点击一个列表项, 系统调用在fragment中的onListItemClick(),然后后者调用 onArticleSelected() 来分配事件给activity.
public static class FragmentA extends ListFragment {
OnArticleSelectedListener mListener;
...
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// Append the clicked item's row ID with the content provider Uri
Uri noteUri = ContentUris.withAppendedId(ArticleColumns.CONTENT_URI, id);
// Send the event and Uri to the host activity
mListener.onArticleSelected(noteUri);
}
...
}
传给 onListItemClick() 的 id 参数是被点击的项的行ID, activity(或其他fragment)用来从应用的 ContentProvider 获取文章.
添加项目到Action Bar
你的fragment可以通过实现 onCreateOptionMenu() 提供菜单项给activity的选项菜单(以此类推, Action Bar也一样).为了使这个方法接收调用,无论如何, 你必须在 onCreate() 期间调用 setHasOptionsMenu() 来指出fragment愿意添加item到选项菜单(否则, fragment将接收不到对 onCreateOptionsMenu()的调用)
随后从fragment添加到Option菜单的任何项,都会被追加到现有菜单项的后面.当一个菜单项被选择, fragment也会接收到 对 onOptionsItemSelected() 的回调.也可以在你的fragment layout中通过调用 registerForContextMenu() 注册一个view来提供一个环境菜单.当用户打开环境菜单, fragment接收到一个对 onCreateContextMenu() 的调用.当用户选择一个项目, fragment接收到一个对onContextItemSelected() 的调用.
注意: 尽管你的fragment会接收到它所添加的每一个菜单项被选择后的回调, 但实际上当用户选择一个菜单项时, activity会首先接收到对应的回调.如果activity的on-item-selected回调函数实现并没有处理被选中的项目, 然后事件才会被传递到fragment的回调.
这个规则适用于选项菜单和环境菜单.
- Fragment中添加OptionItem
- Fragment中添加tabs
- fragment中添加pulltorefresh
- Fragment系列—Activity中添加fragment
- Activity中动态添加Fragment.
- 在Acitivity中添加Fragment
- Fragment 中添加菜单注意事项
- Fragment 中添加菜单注意事项
- 在Activity中添加Fragment
- fragment中添加fragment与activity中添加fragment的不同
- fragment添加menu 以及 fragment中调用onActivityResult
- Android在Fragment中嵌套(添加)Fragment
- Android中使用ViewPager+Fragment动态删除添加Fragment问题
- viewpager中彻底性动态添加、删除Fragment
- 如何把fragment添加到activity中
- FragmentPagerAdapter——ViewPager中添加fragment
- ViewPager中添加和删除Fragment
- 在fragment中添加上下文菜单
- 在vmware下安装redhat linux 5.4 环境与oracle 10g 数据库
- 命令行开发、编译、打包Android应用程序
- Delphi项目构成之项目文件DPR
- 委托
- 项目经理问:为什么总是只有我在加班 – 挂包袱现象
- Fragment中添加OptionItem
- openCV中的向量和图像的创建
- MFC学习日记三:Mfc消息机制与画图
- oracle下如何查看用户所拥有的权限,如何收回权限。
- VS2005使用boost库教程
- Silverlight WorkFlow画图--Activity控件
- 关于scanf与printf里的%*d
- 跟我学plsql - 定义变量 (一)
- 禁止Android 横屏竖屏切换