0

我写了一个实现 ListFieldCallBack 的类,例如,

import java.util.Vector;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.component.ListField;
import net.rim.device.api.ui.component.ListFieldCallback;


    class ListCallBack implements ListFieldCallback
    {
        private Vector listelements = new Vector();

        public void drawListRow(ListField listField, Graphics graphics, int index, int y, int width) 
        {
            String text = (String)listelements.elementAt(index);
            graphics.drawText(text,0,y,0,width);
        }

        public Object get(ListField listField, int index) 
        {
            return listelements.elementAt(index);
        }

        public int indexOfList(ListField listField, String prefix, int start) 
        {
            return listelements.indexOf(prefix, start);
        }

        public int getPreferredWidth(ListField listField) 
        {
            return Graphics.getScreenWidth();
        }

        public void insert(String toInsert, int index)
        {
            listelements.addElement(toInsert);
        }   
        public void erase()
        {
            listelements.removeAllElements();
        }   
    }   

在我的构造函数中,主类被编码为

helloWorld()
{
    mylist = new ListField();
    ListCallBack myCallBack = new ListCallBack();
    mylist.setCallback(myCallBack);
    for(int i = 0; i<array.length;i++)//array is a string array
    {
        list_category.insert(i);
        myCallBack.insert(array[i], i);
    }
    this.add(list_category);
}

这工作正常..

就像,我得到像这样的输出,

Aby
Eric
Allay
vine

但是我想在列表中显示的每一行中向该数组的下一个字符串添加另一个字符串。我该怎么做?

例如,我想要我的屏幕输出,例如,

Aby     :  Smart
Eric    :  0000
Allay   :  9789
vine    :  Like

我怎么能这样做?

4

1 回答 1

1

你应该改变它ListFieldCallback.drawListRow(ListField listField, Graphics graphics, int index, int y, int width)来绘制它。

使用net.rim.device.api.ui.GraphicsAPI 绘制任何你想要的东西。

于 2011-11-25T08:15:45.210 回答