2011-08-26 48 views
7

Vâng, tôi đang cố gắng ngăn bàn phím mềm đóng khi người dùng nhấn nút "ok" sau khi chỉnh sửa trường văn bản. Trên thực tế, những gì tôi đang cố gắng đạt được là: khi nút "ok" được nhấn, trường được phân tích cú pháp và nếu hợp lệ, nó sẽ bắt đầu một hoạt động khác. Điều đó thật dễ dàng.Mở bàn phím mềm khi nhấn phím

Nhưng, khi trường không hợp lệ, tôi muốn bàn phím mềm luôn mở. Và đó là ... một địa ngục phức tạp hơn. Nếu có ai biết làm thế nào để đạt được một điều như vậy ...

Xin cảm ơn trước.

EDIT: ý của tôi là nút OK là nút OK từ bàn phím mềm.

Trả lời

12

Đính kèm OnEditorActionListener đến lĩnh vực văn bản của bạn và gửi lại true từ phương pháp onEditorAction của nó, khi actionId bằng IME_ACTION_DONE. Điều này sẽ ngăn chặn bàn phím mềm từ ẩn:

EditText txtEdit = (EditText) findViewById(R.id.txtEdit); 
txtEdit.setOnEditorActionListener(new OnEditorActionListener() { 

    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
    if (actionId == EditorInfo.IME_ACTION_DONE) { 
     // your additional processing... 
     return true; 
    } else { 
     return false; 
    } 
    } 

}); 
+1

Tùy thuộc vào EditText của bạn 'android: value imeOptions', bạn có thể cần phải kiểm tra actionId chống lại 'IME_NULL',' IME_ACTION_GO', vv – Idolon

+0

thử nó và nó làm việc một cách hoàn hảo! – Redwarp

+0

Đã hoạt động hoàn hảo! đang tìm kiếm điều này. – zeitue

Các vấn đề liên quan