J2ME的MVC2开源框架KBOX系列之二——参数传递与Action跳转

KBOX的1.02正式版已经发布了,下载地址:
https://sourceforge.net/project/showfiles.php?group_id=222328
KBOX网站:http://kbox-mvc.sourceforge.net/news.html

关于KBOX的使用,见上一篇文章《[url=http://hzxdark.iteye.com/admin/blogs/175628] 使用J2ME的MVC2开源框架KBOX[/url]》

MIDP2.0默认的Command参数无法传递参数给事件处理器,这在开发中是很不方便的。
KBOX的KCommand扩展了Command使其可以携带一个Hashtable参数(也就是想“塞”多少参数都可以^_^)

参数传递:

...

Hashtable parameters = new Hashtable();

parameters .put("parameter","hello world!");

KCommand kc = new KCommand("TEST BUTTON", Command.HELP,1,"MYCMD",parameters );

...




这个主要是用于键盘按钮事件这类无法主动添加Command的键盘事件(当然你可以给一个Command事件加一个配置文件参数,虽然个人觉得没什么必要——从KCommand的Hashtable参数传递已经完全足够了)

配置文件(kbox.cfg.property:

...

CMD.MYCMD.ACTION=action.TestAction

CMD.MYCMD.PARAMETERS.1=HELLO //传递名为1、2的参数给Action类MYCMD

CMD.MYCMD.PARAMETERS.2=WORLD

...



Action:

...

public void excute(KCommand cmd, Item item, Displayable dis, ActionForward forward,Hashtable parameters) {

...

System.out.println(parameters.get("1"));//HELLO

System.out.println(parameters.get("2"));//HELLO

...

}

...

注意,当前版本的配置文件参数名字只能是1、2、3照着顺序取名字,否则KBOX认不到……


Action 跳转:

有时可能需要从一个Action跳转到另外一个Action,但KBOX的ActionForward并不支持跳转Action,一个变通的解决办法是, 注意到Action只是一个普通的类,直接生成另外一个Action的实例,excute传递参数即可:)

public void execute(KCommand cmd, Item item, Displayable dis, ActionForward forward,Hashtable parameters) {

...

new AnotherAction().execute(cmd,item,dis,forward,parameters);

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值