3

次の設計に従って Objectfieldlist をカスタマイズすることは可能ですか?

         ----------------------------
ROW#1    ROW NAME
         row details
         ---------------------------
ROW#2    ROW NAME
         row details
         ---------------------------  
ROW#3    ROW NAME
         row details
         ---------------------------

行名は行の詳細よりも大きなフォントになります

基本的に、ObjectListField の行に 2 つのテキスト行が必要です。**または、他の方法や提案が間違っている可能性があります。**pls はその緊急性を教えてくれます。Blackberry 開発にとって新しいものです。

4

1 に答える 1

5

ObjectListFieldは、これを行う正しい方法ではありませんListField。文字列の単純なリストが必要な場合の簡単なバージョンとして設計されています。

それ自体を拡張し、データ モデルに基づいてリストをレンダリングするListField独自の実装を提供する必要があります。ListFieldCallbackコールバックを設定するために使用ListField.setCallbackします。

ListFieldCallback.drawListRowコンテキストを提供するGraphicsため、複数行のテキストを含め、必要なものを描画できます。また、リストフィールドを呼び出しListField.setRowHeightて、行を 2 行のテキストに十分な高さにするようにしてください (デフォルトの高さはフォントの高さであるため、テキスト 1 行分のスペースしかありません)。

サンプル コードは次のようなものです (これは完全ではなく、他のコードがないとコンパイルできません)。

ListField myListField = new ListField();
myListField.setRowHeight(getFont().getHeight() * 2)

myListField.setCallback(new ListFieldCallback() {
    public void drawListRow(ListField listField, Graphics graphics, int index, int y, int width) {
       // draw the first line of text
       graphics.drawText(0, y, "ROW " + rowNumber);
       graphics.drawText(20, y, "ROW NAME");
       graphics.drawText(20, y + getFont().getHeight(), "row details"); 
    }
于 2010-08-29T17:26:30.143 に答える