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");
}