2012-03-15 73 views
0

我使用browserfield显示网页。它显示很好。使用keyChar()覆盖方法时无法输入值

我重写了keyChar()方法,当点击空格键时滚动页面。它也工作正常。

protected boolean keyChar(char c, int status, int time) 
    {  
     if(c == Keypad.KEY_SPACE) 
     { 

      listContainer.setVerticalScroll(); 

     } 
    } 

    return true; 
} 

我的问题是,当我显示此页http://special.belo.com/wcnc/mobile/ad_form/我不能在文本框中输入文本。 keyChar()覆盖方法不允许在文本字段中输入文本。

请帮我。如何在browserfield上显示的页面上输入文字。

回答

1

你正在捕获所有的键,但只处理空间。通常的模式是当你完成你的工作时调用超级方法:

protected boolean keyChar(char c, int status, int time) {  
    if(c == Keypad.KEY_SPACE) { 
      listContainer.setVerticalScroll(); 
    } 
    return super.keyChar(c, status, time); 
} 
+0

是的。非常感谢你。我从你那里得到了一些知识。 – RVG 2012-03-15 06:36:17

+0

它的工作正常。但是当我按下退格键时,它会抛出非法状态表达式。它只显示在balckbrbr模拟器上。 – RVG 2012-03-21 06:19:46

+0

退格键由super方法处理,也许在实际的上下文中不允许。试着找出它发生的地方,尝试获得堆栈跟踪,这可能值得关于SO的另一个问题!它不会抛在* this *方法中。 – 2012-03-21 06:27:48