2011-01-30 47 views
7

Từ hướng dẫn android:Sau khi gõ vào EditText, làm thế nào để làm cho bàn phím biến mất

pass_text.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     // If the event is a key-down event on the "enter" button 
     if ((event.getAction() == KeyEvent.ACTION_DOWN) 
       && (keyCode == KeyEvent.KEYCODE_ENTER)) { 
      // Perform action on key press 
      return true; 
     } 
     return false; 
     } 
    }); 
} 

khi nhấp chuột vào EditText, nó có một bàn phím xuất hiện trên khung hình. Tôi muốn biết sau khi Enter. Cách tạo bàn phím ra khỏi khung trừ khi nhấp vào Quay lại.

enter image description here

Cảm ơn bạn

Trả lời

24

Thử

sau

Đối Hoạt động:

InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
mgr.hideSoftInputFromWindow(curEditText.getWindowToken(), 0); 

Trong trường hợp của Fragment:

InputMethodManager mgr = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); 
     mgr.hideSoftInputFromWindow(mEditText.getWindowToken(), 0); 
+0

Cảm ơn bạn đã trả lời ur. – Yoo

14

cho hộp EditText bạn có thuộc tính android:imeOptions="actionDone" điều này sẽ thay đổi nút Enter thành nút Xong sẽ đóng bàn phím.

+0

Cảm ơn bạn. Tôi nghĩ rằng đây là câu trả lời tốt hơn và phù hợp hơn. – Shiun

+2

Một lời cảnh báo tuy nhiên: điều này dường như không hoạt động trên 100% số điện thoại ngoài kia – atraudes

+1

@atraudes Tôi đã gặp sự cố, một số điện thoại cũng muốn singleline = true chưa gặp sự cố nào ngoài điều đó. – schwiz

1

Cách tiếp cận làm việc để loại bỏ bàn phím mềm là tắt và sau đó kích hoạt trường TextEdit trong sự kiện phím Quay lại, bấm nút hoặc bất cứ điều gì. Ví dụ:

.... 
pass_text.setEnabled(false); 
pass_text.setEnabled(true); 
.... 
+0

Câu trả lời này có thể không phù hợp với vấn đề của người hỏi là tốt nhất, nhưng nó giúp tất cả các SO khác ra khỏi đó nhiều hơn nữa. Đây sẽ là câu trả lời được chấp nhận. –

0

Tôi nghĩ chúng ta có thể chỉ cần thêm thuộc tính này để EditText của chúng tôi:

android: inputType = "text"

này sẽ tự động buộc các văn bản phải được trên một dòng đơn và do đó khi chúng ta nhấn Enter, bàn phím biến mất.

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