2011-11-25 32 views
0

我寫它實現ListFieldCallBack喜歡的一類,如何自定義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 

Bu我想添加另一個字符串到列中顯示的每一行中的數組的下一個..我怎麼能做到這一點?

等,例如,我想我的屏幕輸出一樣,

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

我怎麼能做到這一點?

回答

1

您應該更改ListFieldCallback.drawListRow(ListField listField, Graphics graphics, int index, int y, int width)來繪製它。

使用net.rim.device.api.ui.Graphics API來繪製任何你想要的。

+0

我對黑莓環境真的很陌生。實際上我只是想研究那裏發生了什麼運作,以獲得我想要的結果。你可以在PLZ中顯示我需要在我的代碼中進行的更改嗎? –

+0

@ arhimed-親愛的,我已經走過了你所展示的路。感謝您的寶貴建議。我有些疑惑。你能幫我解決我的疑惑嗎?你可能會覺得我的所有疑惑都是愚蠢的。但要有能引導我的人對我更有幫助。 PLZ回覆,如果你能幫助我 –

+0

@sujith:請發佈任何疑問作爲新的StackOverflow問題和整個StackOverflow BB社區將abailiable爲您提供幫助。另外這裏是一個更復制的清單項目圖的示例供您檢查:http://supportforums.blackberry.com/t5/Java-Development/Custom-ListField-row-with-images-and-text/td- p/227993 –