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)それを描画するには、 を変更する必要があります。

API を使用net.rim.device.api.ui.Graphicsして、必要なものを描画します。

于 2011-11-25T08:15:45.210 に答える