我正在開發一個Android應用程序,並且有一個帶有3個EditTexts的視圖。我試圖實現的是,在最後一個按下的數字鍵應該調用該活動的okKey事件。問題在於我設置了onKeyListener的EditText,getText和setText方法都無法工作。請允許我解釋一下:Android:getText和setText不能在onKeyListener上使用EditText
想我初始化一個空字符串
String string1 = "";
在我的onCreate方法,我設置了onKeyListener上EditTexts的一個現在
@Override
public void onCreate(Bundle savedInstanceState) {
...
findViewById(R.id.EditText3).setOnKeyListener(this);
...
}
,如果我寫了下面的代碼覆蓋okKey方法
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode >= KeyEvent.KEYCODE_0 && keyCode <= KeyEvent.KEYCODE_9) {
string1 += ((EditText) findViewById(R.id.EditText1)).getText();
string1 += ((EditText) findViewById(R.id.EditText2)).getText();
string1 += ((EditText) findViewById(R.id.EditText3)).getText();
((EditText) findViewById(R.id.EditText1)).setText("");
((EditText) findViewById(R.id.EditText2)).setText("");
((EditText) findViewById(R.id.EditText3)).setText("");
}
return false;
}
只有EditText1和EditText2 g et清除並且EditText3中的文本不會連接到string1。如果我將If語句的條件替換爲
if (keyCode == KeyEvent.KEYCODE_ENTER)
然後按Enter鍵(設置爲Next),它按預期工作。我試圖在活動的onResume方法中添加setText(「」),但結果沒有區別。我很欣賞你花時間閱讀我的問題!
已編輯:添加了「返回false」;在onKey方法結束時,我在工作中使用了它,但錯過了將它放在這個問題中,克里斯的答案提醒了我。
對不起,我應該提到(或放入示例代碼),我在onKey方法結束時返回false。 – user796658 2011-06-14 14:44:14
@Mark,你的建議是答案,它解決了問題!謝啦!你能否將你的評論放入問題的答案中,以便將其標記爲答案? – user796658 2011-06-14 14:45:57