首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2ME开发 >

通过for循环打印的StringItem都响应按键,按键后能获取局部变量,如何做

2012-01-07 
通过for循环打印的StringItem都响应按键,按键后能获取局部变量,怎么做?大概的显示是这样的:第1条搜索结果:

通过for循环打印的StringItem都响应按键,按键后能获取局部变量,怎么做?
大概的显示是这样的:
第1条搜索结果:aaa(这是一个StringItem超链接型的字符串)
第2条搜索结果:bbb(这是一个StringItem超链接型的字符串)
......
用户选择其中的一个搜索结果(光标放在aaa处),然后点击右下角进入按键。。。

代码如下:

//先从服务器接收总共有多少个web服务
                    int   totalResult=ds.readInt();
//以下信息为从Web服务器所接收到的每条详细信息
            for(int   i   =   0;i <totalResult;i++){
                        serviceID=ds.readLong();    
                        servicename=ds.readUTF();
                        //setServiceID(serviceID);这样做也不行
                        stringItem=new   StringItem( "第 "+(i+1)+ "条搜索结果: ",servicename,javax.microedition.lcdui.Item.HYPERLINK);
                        stringItem.addCommand(okCommand);
                        stringItem.setItemCommandListener(this);  
                        result.append(stringItem);
                    }  

    public   void   commandAction(Command   command,   Item   item)   {
                //目前的问题是如何接收那个关键IDserviceID,然后传到      
//getEnterServiceInfor(...)做实参,进一步处理
                      //   getEnterServiceInfor(serviceID)
                      }
   
                      }
现在的问题是无论用户选择的是哪个Item,最后到commandAction里的还是对应的for循环的最后一个,即i=totalResult-1,long   serviceID=对应最后一个搜索结果的ID,
怎么捕获用户选择的那个web服务的ID呢?
大家看看怎么实现,谢谢大家帮忙。

[解决办法]
使用额外的变量来记录不就行了么?
给一个解决方案

Vector IDs=new Vector();//存储ID
int currentIndex;//记录当前选择的Item的序号

刷新时

IDs.addElements(new Long(..));//将刷新得到的ID存入Vector

事件处理
long id=((Long)IDs.elementAt(currentIndex)).longValue();



[解决办法]
或者 考虑到 第 "+(i+1)+ "条搜索结 这样的显示结果
long id=((Long)IDs.elementAt(Integer.parseInt(label.substring(1,2))-1))
[解决办法]
推荐给楼主一个案例,SmartTicket 2.0

http://www.j2medev.com/bbs/dispbbs.asp?boardid=17&ID=16754&replyID=68083

今天刚看到了,昨晚听了楼主项目一些细节,觉得和这个有些类似。可以看看
他是基于J2ME和J2EE技术的

热点排行