Samples/Notepad

本文分析了Android Notepad应用的设计,介绍了三个主要Activity的功能及其实现细节,包括日记列表、内容编辑和标题编辑页面。同时探讨了ContentProvider的使用方法及其核心API。

Android Samples-Notepad分析之一

该Notepad应用包含三个Activity

1.供显示当前应用所有的日记,也就是一个日记列表,继承自ListActivity,应用启动的主页面

该Activity包含以下内容:

上下文菜单:在某一行上长按弹出相应菜单,菜单包含一个标题与删除选项,主要有以下几个方法里实现

onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo),onContextItemSelected(MenuItem item)

 

在onCreate()里绑定一个上下文菜单,绑定方法如下:

getListView().setOnCreateContextMenuListener(this);

 

菜单:当前ListActivity没有项被选中时,只有一个添加菜单,点击跳转到内容编辑页面

 startActivity(new Intent(Intent.ACTION_INSERT, getIntent().getData()));

 采取action + uri 方式进行跳转

 

 如果当前ListActivity有选中项,会另外再动态添加二个菜单(编辑当前内容 、 编辑当前标题)+ 添加菜单

 此处采用动态添加技术,具体代码如下:

Intent[] specifics = new Intent[1];

specifics[0] = new Intent(Intent.ACTION_EDIT, uri);

MenuItem[] items = new MenuItem[1];

//采取action + data


Intent intent = new Intent(null,uri);

intent.addCategory(Intent.CATEGORY_ALTERNATIVE);

//采取 category + data


menu.addIntentOptions(Menu.CATEGORY_ALTERNATIVE, 0, 0, 

new ComponentName(this, NotepadListActivity.class), specifics, intent, 0, items);

 

 上述代码采取二种适配方式,在onPrepareOptionsMenu(Menu menu)里进行相关处理,如果manifest.xml中有匹配这二种方式,就会生成相应菜单,名称取自intent-filter 里的label,没有匹配成功,则不生成相应的菜单

 

2.单个日记的内容编辑页面,继承自Activity

当前Activity中自定义了一个编辑控件,继承自 EditText

在onCreate()里会判断当前action,编辑与插入处理方式不同,当action为插入时,会事先向ContentProvider做一次插入操作,去创建相应数据,并返回对应的Uri,数据的保存都在onPause里处理,根据相应的Uri作Update操作

 

该Activity里也有动态菜单的处理,当action为编辑里,会动态添加一个标题编辑菜单

 

3.单个日记的标题编辑页面,继承自Activty

编辑当前标题,该Activity的主题为Dialog,数据的保存也是在onPause里

 

 

这个事例是对针对ContentProvider的使用,给出的一个简单demo

ContentProvider是一个抽象类,继承它必须实现它所有抽象方法,包含如下:

 

The primary methods that need to be implemented are:

针对动态菜单的添加,data数据与manifest.xml匹配时,系统会通过getType(Uri)得到相应的MIME数据,这个数据需要开发者自己定义,格式如下:vnd.android.cursor.dir/?     vnd.android.cursor.item/?

 

 

简单写了点本人对这个事例的理解,不可能面面居到,有不理解的地方,我们可以交流交流!谢谢!

内容概要:本文围绕EKF SLAM(扩展卡尔曼滤波同步定位与地图构建)的性能展开多项对比实验研究,重点分析在稀疏与稠密landmark环境下、预测与更新步骤同时进行与非同时进行的情况下的系统性能差异,并进一步探讨EKF SLAM在有色噪声干扰下的鲁棒性表现。实验考虑了不确定性因素的影响,旨在评估不同条件下算法的定位精度与地图构建质量,为实际应用中EKF SLAM的优化提供依据。文档还提及多智能体系统在遭受DoS攻击下的弹性控制研究,但核心内容聚焦于SLAM算法的性能测试与分析。; 适合人群:具备一定机器人学、状态估计或自动驾驶基础知识的科研人员及工程技术人员,尤其是从事SLAM算法研究或应用开发的硕士、博士研究生和相关领域研发人员。; 使用场景及目标:①用于比较EKF SLAM在不同landmark密度下的性能表现;②分析预测与更新机制同步与否对滤波器稳定性与精度的影响;③评估系统在有色噪声等非理想观测条件下的适应能力,提升实际部署中的可靠性。; 阅读建议:建议结合MATLAB仿真代码进行实验复现,重点关注状态协方差传播、观测更新频率与噪声模型设置等关键环节,深入理解EKF SLAM在复杂环境下的行为特性。稀疏 landmark 与稠密 landmark 下 EKF SLAM 性能对比实验,预测更新同时进行与非同时进行对比 EKF SLAM 性能对比实验,EKF SLAM 在有色噪声下性能实验
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值