黑莓上ListField的增加和删除

今天群里有人说删除的时候总是从最后一个listfield删除,而不管当前光标在哪个object,于是空下来写了一下,很简单的实现了。

程序比较简单,数组上下限等判断没有加。

PS:据说必须同时写上myCallback.remove(myList.getSelectedIndex())和myList.delete(myList.getSelectedIndex())才能达到效果。

class testscreen extends MainScreen {
     private int i = 3;
     ListCallback myCallback = new ListCallback();
     private ListField myList;
        public testscreen(){
        super();
            LabelField title = new LabelField("listfieldtest",LabelField.ELLIPSIS|LabelField.USE_ALL_WIDTH);
            setTitle(title);
            myList = new ListField();
            myList.setCallback(myCallback);
            String fieldOne = "listone";
            String fieldTwo = "listtwo";
            String fieldThree = "listthree";
            myList.insert(0);
            myCallback.insert(fieldOne, 0);
            myList.insert(1);
            myCallback.insert(fieldTwo, 1);
            myList.insert(2);
            myCallback.insert(fieldThree, 2);
            add(myList);
        }
         private static class ListCallback implements ListFieldCallback {
            private Vector listElements = new Vector();

            public void drawListRow(ListField list, Graphics g, int index, int y, int w) {
               String text = (String)listElements.elementAt(index);
               g.drawText(text, 0, y, 0, w);
            }
            public Object get(ListField list, int index) {
                return listElements.elementAt(index);
            }
            public int indexOfList(ListField list, String p, int s) {
                return listElements.indexOf(p, s);
            }
            public int getPreferredWidth(ListField list) {
                return Graphics.getScreenWidth();
            }
            public void insert(String toInsert, int index) {
                listElements.addElement(toInsert);
            }
            public void remove(int index){
                int i;
                for(i=0;i
                {
                    System.out.println(i+"="+ (String) listElements.elementAt(i));
                }
                System.out.println("size====="+listElements.size());
                System.out.println("remove==="+listElements.elementAt(index));
                listElements.removeElementAt(index);

            }
            public void rase() {
                listElements.removeAllElements();
            }

        }
          private MenuItem newItem = new MenuItem("New", 100, 10) {
            public void run() {
            myList.insert(i);
            myCallback.insert("new",i);
            i++;
          }
        };
    private MenuItem romItem = new MenuItem("Remove", 100, 20) {
            public void run() {
            myCallback.remove(myList.getSelectedIndex());
            myList.delete(myList.getSelectedIndex());
          }
        };

        protected void makeMenu(Menu menu, int instance) {
            menu.add(newItem);
            menu.add(romItem);
       }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值