wie Object anpassen?
-
01-10-2019 - |
Frage
Ist es möglich, Objectfieldlist nach folgendem Design anpassen?
----------------------------
ROW#1 ROW NAME
row details
---------------------------
ROW#2 ROW NAME
row details
---------------------------
ROW#3 ROW NAME
row details
---------------------------
Row Namen in größerer Schrift als Zeile Details werden
Im Grunde brauche ich zwei Textzeilen in einer Reihe von Object. ** oder eine andere Methode oder einem Vorschlag, wie ich könnte falsch sein, ** pls leitet mir seine dringenden und ist, was einig neue Blackberry-Entwicklung.
Lösung
ObjectListField
ist nicht wirklich der richtige Weg, dies zu tun -. Es wirklich als eine schnelle Version von ListField
für jene Zeiten entworfen ist, wenn man nur eine einfache Liste von Strings benötigt
Sie sollten erweitern sich ListField
und eine eigene Implementierung von ListFieldCallback
, die Ihre Liste auf der Grundlage Ihrer Datenmodell macht. Verwenden ListField.setCallback
Ihren Rückruf zu setzen.
ListFieldCallback.drawListRow
gibt Ihnen einen Graphics
Kontext, so können Sie zeichnen, was Sie wollen, darunter mehrere Textzeilen. Achten Sie auch auf Anruf ListField.setRowHeight
auf Listfield die Reihen hoch genug für zwei Zeilen Text (die Standardhöhe ist die Schrifthöhe, so dass Sie nur Platz für 1 Textzeile haben würden) zu machen.
Beispielcode ist wie etwas (dies ist nicht vollständig und wird ohne einen anderen Code nicht kompilieren):
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");
}