如何在激活某个View时把简单对象(T类)做为参数进行传递

转载 2007年09月29日 11:23:00

下面是我从Nokia公司论坛上找到的关于视图间传递比较多的参数时的解决方法的文章,介绍的不错,贴在这里,方便需要之人使用。

文章地址:http://wiki.forum.nokia.com/index.php/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%BF%80%E6%B4%BB%E6%9F%90%E4%B8%AAView%E6%97%B6%E6%8A%8A%E7%AE%80%E5%8D%95%E5%AF%B9%E8%B1%A1%28T%E7%B1%BB%29%E5%81%9A%E4%B8%BA%E5%8F%82%E6%95%B0%E8%BF%9B%E8%A1%8C%E4%BC%A0%E9%80%92

如何在激活某个View时把简单对象(T类)做为参数进行传递

在使用Series 60 Multi-View架构时我们经常需要在view间传递数据, Multi-View架构提供了CAknViewAppUi::ActivateLocalViewL(TUid aViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage)函数用于在激活某个view时传入相应的参数。我们可以通过实现view类的DoActivateL( const TVwsViewId& aPrevViewId,TUid aCustomMessageId, const TDesC8& aCustomMessage )来进行参数的处理。

通过观察上面这两个函数发现我们可以利用aCustomMessageId和aCustomMessage来进行直接进行整数型和8位描述符的传递,但如果我们要在view间传递的参数有很多,这时怎么办?我们可能会想到把多个参数按一定顺序格式化到aCustomMessage中,然后在接收方进行解析。这种方法会产生一个问题:当参数增加或减少时对参数组织和解析都会增加负担。其时Symbian提供了TPckgBuf这个类来进行打包工作,通过它我们可以把一个简单对象(通常是T类)包装到8位描述符的buffer中。下面的代码演示了如何利用TPckgBuf在view间传递简单对象:










传递参数:













解析参数:















备注:

为了示例简单明了并没有通过aCustomMessageId进行防御性编码。

上面的代码在基于Series60 3rd的设备上进行了测试,TViewPara中的成员直接使用中文也是正常的。 

如何在激活某个View时把简单对象(T类)做为参数进行传递

在使用Series 60 Multi-View架构时我们经常需要在view间传递数据, Multi-View架构提供了CAknViewAppUi::ActivateLocalViewL(TUid aV...
  • Beover1984
  • Beover1984
  • 2007年07月30日 16:54
  • 2271

网络编程之路(第二天) 结构化参数传递

HRESULT Fire_Initialize( IUnknown * pUnit, LONG lResult, BSTR lpszDesc...
  • markqian86
  • markqian86
  • 2009年03月04日 10:48
  • 352

C++愤恨者札记1——类对象作为函数参数的数据传递过程

C++愤恨者札记1——类对象作为函数参数的数据传递过程     C++繁杂的机制,加上枯燥的教科书,再加上无法回避地要使用它,注定要造就一批C++愤恨者。本文作为C++愤恨者札记系列第一篇,从汇...
  • tms_li
  • tms_li
  • 2012年07月20日 08:07
  • 9054

Python中参数的传递本质——建立变量与对象的关联

参考文章1:知乎网站 参考文章2:winterTTr 的个人博客 参考文章3 在python中,类型属于对象,变量是没有类型的,这正是python的语言特性,也是吸引着很多pythoner的一...
  • ldzhangyx
  • ldzhangyx
  • 2015年10月27日 16:37
  • 1312

Java传递基本类型:值传递,对象作为参数:引用传递

值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。 引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相...
  • dreamxiaowei
  • dreamxiaowei
  • 2017年02月25日 15:53
  • 3257

Makefile传参数

有时我们不想反复的修改程序,而希望通过 Makefile 传参数来编译程序不同的模块。 如下面的例子: #include #include int main(void) { in...
  • shujuliu818
  • shujuliu818
  • 2016年11月15日 16:09
  • 472

Struts2向action传对象数组

比如多个 User对象需要从jsp页面利用ajax请求传递到后台action 我开始是这样做的  在前台创建一个User[] 数组,将user对象放入该数组,并且使用var jsonTex...
  • u012891504
  • u012891504
  • 2016年07月28日 18:34
  • 624

C++对象作为函数参数

关于C/C++中基本类型(如:int,int*等)作为函数参数时,是通过将该变量的值压栈来进行参数传递;本文通过C++反汇编代码分析了当对象作为函数参数时(该形参非引用或指针),参数如何传递以及此时栈...
  • Qinchaowhut
  • Qinchaowhut
  • 2014年08月20日 08:58
  • 1271

【Objective-C】02-OC对象作为参数传递给函数

OC对象可以作为函数参数传递给参数,以下简述对象参数在函数中的两种情况: 一、对象作为参数传递到函数中,在函数内部对此对象的参数会影响到外部传递进来的对象。 二、对象作为参数传递到函数中,在函数内部指...
  • HONG321
  • HONG321
  • 2014年12月04日 23:08
  • 2265

将函数或过程作为参数进行传递实例

又名:将事件作为参数进行传递实例 首先要明白DELPHI中的事件是指针来的。 1 声明一个事件: type     TChangeEvent = procedure (ASelectType,...
  • duck04551
  • duck04551
  • 2011年11月15日 09:58
  • 1150
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在激活某个View时把简单对象(T类)做为参数进行传递
举报原因:
原因补充:

(最多只允许输入30个字)