2012-03-08 60 views
1

點擊按鈕更新頁面內容後,我無法弄清楚爲什麼下一頁/上一頁按鈕停止工作。點擊按鈕更新頁面內容後,Kindle的Next/Previous頁按鈕停止工作

我的示例程序的代碼如下。下一頁/上一頁的按鈕按鈕正常工作,直到您使用D-pad單擊Kindle上的Go按鈕。之後,下一頁/上一頁按鈕不會執行任何操作。我究竟做錯了什麼?

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

開發/測試環境:

KDK API 1.0 
Kindle Keyboard (Kindle 3) emulator 
JDK6/JRE6 
Eclipse Indigo SR1 
JDK compliance level 1.4 

回答

1

KPages容器失去焦點,我們已經看到了這個問題。嘗試撥打電話

pages.requestFocus(); 
+0

這樣做了;謝謝! – rob 2012-03-24 04:29:13

相關問題