現在,我使用onEditorActionListener處理EditText字段中的Enter鍵,並查看IME_NULL的Action ID。除了一個用戶以外,它對我的所有用戶都很好她有一個Xperia弧。在不同設備上的EditText中處理Enter鍵
TextView.OnEditorActionListener keyListener = new TextView.OnEditorActionListener(){
public boolean onEditorAction(TextView view, int actionId, KeyEvent event) {
if(actionId == EditorInfo.IME_NULL){
if(((EditText)findViewById(view.getId())) == ((EditText)findViewById(R.id.etUser))){
((EditText) findViewById(R.id.etPass)).requestFocus();
}
if(((EditText)findViewById(view.getId())) == ((EditText)findViewById(R.id.etPass))){
logon();
}
}
return true;
}
};
瞭解了這個問題之後,我嘗試另一種方法通過使用onKeyListener和尋找關鍵事件ACTION_DOWN然後檢查鍵碼,如果它匹配KEYCODE_ENTER。
EditText etUserName = (EditText) findViewById(R.id.etUser);
etUserName.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View view, int keyCode, KeyEvent event){
if (event.getAction() == KeyEvent.ACTION_DOWN){
switch (keyCode)
{
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_ENTER:
if(((EditText)findViewById(view.getId())) == ((EditText)findViewById(R.id.etUser))){
((EditText) findViewById(R.id.etPass)).requestFocus();
}
return true;
default:
break;
}
}
return false;
}
});
也沒有骰子。我現在虧本了。有很多應用程序可以處理輸入密鑰。他們有什麼不同?
你有沒有找到解決這個bug的方法?我實際上需要攔截輸入法,不僅將文本保留在一行上。 – pgsandstrom