2011-04-13 26 views
0

我想让删除键像典型的退格键一样删除字符。 MyEditField是EditField的子类,并且库存EditField包含三种方法,分别为protected int backspace(int count, int context),public int backspace(int count)protected boolean backspace()挂钩到EditField的删除键设置为FILTER_REAL_NUMERIC

MyEditField在实例化时设置为FILTER_REAL_NUMERIC,并且我尝试使用上述所有方法来使删除键工作。是否有必要重写退格函数以开始工作,或者我将不得不编写一个自定义算法来获取删除键以删除字符串末尾的字符?

我已阅读文档,并且我找不到任何提及退格功能什么时候可以工作以及什么时候不可以的情况。另外,我知道系统(a.k.a.模拟器)正在注册按键上的删除,因为我可以将键码输出到控制台。

我想要得到更多的用户友好的东西比必须通过BB菜单清除整个领域。

回答

2

是否需要重写退格的功能去上班

不,事实并非如此。只需抓住关键事件,并致电backspace()。 Smth like:

protected boolean keyChar(char key, int status, int time) { 
    if (key == Characters.DELETE) { 
     backspace(); 
     return true; 
    } 
    return super.keyChar(key, status, time); 
} 
+0

想知道你是否要回答。这种作品。但它一次只能2个字符。 – 2011-04-13 18:31:10

+0

@Mike D:2个字符...奇怪。你完全使用我发布的代码吗?另一点它仍然可以泄漏的是'keyControl(char key,int status,int time)',所以为了以防万一确保你在那里捕获了相同的键并返回true(所以事件被消耗)。 – 2011-04-13 18:46:40

+0

我是。主屏幕听输入键会不会有冲突? – 2011-04-13 19:36:47