I pulsanti della pagina successiva / precedente del Kindle smettono di funzionare dopo aver fatto clic su un pulsante per aggiornare il contenuto della pagina
-
09-12-2019 - |
Domanda
Non riesco a capire perché la pagina successiva / pulsanti della pagina precedente smetti di funzionare dopo un pulsante Fare clic su Aggiorna il contenuto della pagina.
Il codice per il mio programma di esempio è inferiore.I pulsanti della pagina successiva / precedente pagine funzionano bene fino a quando non si fa clic sul pulsante Vai sul Kindle usando il D-Pad.Successivamente, i pulsanti della pagina successiva / precedente non fanno nulla.Cosa sto facendo male?
package com.example;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import org.apache.log4j.Logger;
import com.amazon.kindle.kindlet.AbstractKindlet;
import com.amazon.kindle.kindlet.KindletContext;
import com.amazon.kindle.kindlet.ui.KBoxLayout;
import com.amazon.kindle.kindlet.ui.KButton;
import com.amazon.kindle.kindlet.ui.KPages;
import com.amazon.kindle.kindlet.ui.KPanel;
import com.amazon.kindle.kindlet.ui.pages.PageProviders;
public class MyKindlet extends AbstractKindlet {
private static Logger logger = Logger.getLogger(MyKindlet.class);
private KindletContext context;
private final KPages pages = new KPages(PageProviders.createKBoxLayoutProvider(KBoxLayout.Y_AXIS));
public void create(final KindletContext context) {
this.context = context;
for (int i = 0; i < 50; i++) {
pages.addItem("This is item " + i);
}
logger.debug("pages: " + pages.getComponentCount());
context.getRootContainer().add(pages, BorderLayout.CENTER);
KPanel pnlControls = new KPanel();
KButton btnGo = new KButton("Go!");
pnlControls.add(btnGo);
context.getRootContainer().add(pnlControls, BorderLayout.SOUTH);
btnGo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
EventQueue.invokeLater(new Runnable() {
public void run() {
addMoreItems("Yet another item ");
}
});
}
});
addMoreItems("Another item ");
}
private void addMoreItems(String prefix) {
for (int i = 0; i < 50; i++) {
pages.addItem(prefix + i);
}
}
public void start() {
}
public void stop() {
}
public void destroy() {
}
}
.
Ambiente di sviluppo / test:
KDK API 1.0
Kindle Keyboard (Kindle 3) emulator
JDK6/JRE6
Eclipse Indigo SR1
JDK compliance level 1.4
. Soluzione
Abbiamo visto questo problema quando il contenitore KPages
perde la messa a fuoco.Prova a chiamare
pages.requestFocus();
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow