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的使用,见上一篇文章《 使用J2ME的MVC2开源框架KBOX

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

参数传递:


1。传递菜单命令参数:

...

Hashtable parameters = new Hashtable();

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

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

...

 4.传递配置文件参数


这个主要是用于键盘按钮事件这类无法主动添加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
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值