Ngay bây giờ tôi đang xử lý khóa nhập trong các trường EditText của tôi bằng cách sử dụng một onEditorActionListener và xem ID hành động cho IME_NULL. Nó hoạt động tốt cho tất cả người dùng của tôi ngoại trừ một người dùng. Cô ấy có Xperia Arc.Xử lý phím enter trong EditText trên các thiết bị khác nhau
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;
}
};
Sau khi tìm hiểu về vấn đề này, tôi đã cố gắng tiếp cận khác bằng cách sử dụng một onKeyListener và tìm kiếm các ACTION_DOWN sự kiện quan trọng sau đó kiểm tra mã phím nếu nó phù hợp 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;
}
});
Không có súc sắc cho điều đó. Tôi đang thua lỗ ngay bây giờ. Có rất nhiều ứng dụng trên đó xử lý phím enter tốt. họ đang làm gì khác?
Bạn có gặp bất kỳ cơ hội nào để tìm ra lỗi này không? Tôi thực sự cần phải đánh chặn enter-press, không chỉ giữ cho văn bản trên một hàng. – pgsandstrom