2012-03-14 21 views
0

我正在爲BlackBerry(OS 6.0+)製作我的第一個應用程序,我必須定義如下圖所示的屏幕。我已閱讀有關RichList,但不允許將其添加到其他組件下方。如何在BlackBerry中實現這種列表?

What I'm trying to achieve

我要的是寬ButtonField以下部分(列表)。白色方塊應該包含圖像,其前面的塗鴉應該包含文字。這個「列表項目」是動態填充的。

正如您所看到的,這非常類似於RichList的佈局,但似乎無法將其添加到VerticalFieldManager,我曾用它作爲組件的主容器。

所以如果有人能幫我弄到這個屏幕,我真的很感謝!提前致謝。

+0

如何使用'ListField'?你可以檢查這個答案:http://stackoverflow.com/a/1881319/431639 – Rupak 2012-03-14 06:52:31

+0

@Rupak我檢查出來..但有沒有任何有效的方式來做到這一點? ('這個應用程序可能有大量的行)。如果我沒有得到滿意的答案,那麼我會解決這個問題。 – Roshnal 2012-03-14 07:02:26

+0

不確定大列表中的效率,但比使用自定義的'VerticalFieldManager'包含行項目更有效率和更有效。還可以使用新項目填充列表,並使用當前選定的行信息動態刪除列表中的項目。所以我認爲這可以用於一些動態數據擦除/添加。 – Rupak 2012-03-14 07:50:40

回答

2

您需要實現ListFieldCallback並覆蓋所有方法。在那裏你會看到「drawListRow」方法。您需要在左側繪製圖像,並在該方法的索引上寫入文字。像這樣: -

ListData ld = (ListData) rows.elementAt(index); 

      g.drawText(ld.name, 30+extraSpaceDelete, y 
      + (listItemHeight - g.getFont().getHeight())/2); 

    g.drawText(ld.address, 30+extraSpaceDelete, (y 
      + (listItemHeight - g.getFont().getHeight())/2)+(g.getFont().getAscent()+10)); 

    g.drawBitmap(0, y + listItemH - 3, Display.getWidth(), 3, 
      separator_line, 0, 0); 
+0

完全贊同Ravi – rosco 2012-03-14 07:51:46

+0

謝謝你的回答!現在我有一個想法如何做到這一點.. :) – Roshnal 2012-03-14 08:21:38