Les boutons de page suivante/précédente du Kindle cessent de fonctionner après avoir cliqué sur un bouton pour mettre à jour le contenu de la page

StackOverflow https://stackoverflow.com//questions/9624754

  •  09-12-2019
  •  | 
  •  

Question

Je n'arrive pas à comprendre pourquoi les boutons page suivante/page précédente cessent de fonctionner après qu'un clic sur un bouton met à jour le contenu de la page.

Le code de mon exemple de programme est ci-dessous.Les boutons de page suivante/page précédente fonctionnent correctement jusqu'à ce que vous cliquiez sur le bouton Go du Kindle à l'aide du D-pad.Après cela, les boutons page suivante/précédente ne font plus rien.Qu'est-ce que je fais mal?

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() {
    }
}

Environnement de développement/test :

KDK API 1.0
Kindle Keyboard (Kindle 3) emulator
JDK6/JRE6
Eclipse Indigo SR1
JDK compliance level 1.4
Était-ce utile?

La solution

Nous avons constaté ce problème lorsque le KPages le conteneur perd sa concentration.Essayez d'appeler

pages.requestFocus();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top