2011-04-13 31 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