У меня есть некоторый опыт разработки для Android, и теперь я решил научиться чему-то новому - разработке для Kindle (НЕ Kindle Fire на базе Android).
Amazon предлагает KDK + Personal Basis Profile 1.1.2 (JSR 217) в качестве платформы.
Моя проблема в том, как разработать пользовательский интерфейс. У меня нет опыта работы с awt (только что качал некоторые приложения в java), но это не кажется большой проблемой, потому что это довольно просто ... Основная проблема связана с «заменой» андроида ListView
.
Я пытался использовать компонент с именем KPages
. Однако я не могу поместить в модель страниц ничего, кроме KLabel
...
PageProvider pp = PageProviders.createKBoxLayoutProvider(KBoxLayout.PAGE_AXIS);
final KPages pages = new KPages(pp);
for (int i = 0; i < 40; i++) {
final KPanel listItem = new KPanel();
// listItem.add(new KLabelMultiline("label numero " + i + " is not very good, because it will be displayed over more than one line and 'pages' won't be able to deal with it"));
listItem.add(new KLabel("label numero " + i + " is very good, because it won't be displayed over more than one line and 'pages' will be able to deal with it"));
listItem.add(new KButton("read"));
listItem.add(new KButton("edit"));
pages.addItem(listItem);
}
context.getRootContainer().add(pages);
Пример кода выше показывает мою попытку перечислить некоторые элементы. KPages
хорошо работает только при добавлении KLabel
с помощью pages.addItem()
. Просто вставка KLabelMultiline
приводит к тому, что пейджинг не работает (вместо того, чтобы отображать метки 0-12, он «отображает» 0-26 как одну строку, но экран Kindle показывает только 14-26). Попытка вставить все KPanel
с меткой и двумя кнопками приводит к отображению меток, за которыми следует одна пустая строка для каждого элемента, без какой-либо кнопки... отображение тех же KPanel
внешних страниц работает нормально - я вижу метку и обе кнопки...
Я почти уверен, что это моя вина, что я что-то упустил, но из-за того, что на KDK очень мало информации, я не могу ее найти... Кто-нибудь может мне помочь? Спасибо