2010-06-24 42 views
7
<EditText android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:layout_weight="1" 
    android:id="@+id/name" android:singleLine="true" 
    android:maxLength="12" android:capitalize="none" android:inputType="text" /> 
<Button android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:id="@+id/search_button" 
    android:text="Search" /> 

Tôi có điều này ở đầu ứng dụng của mình. Khi ứng dụng bắt đầu, EditText được đánh dấu màu cam và có con trỏ trong đó; khi EditText được nhấn, bàn phím mềm sẽ bật lên. Người dùng sử dụng nó để nhập vào EditText.Android: EditText và Button; khi nhấp vào nút, không tập trung EditText và ẩn bàn phím mềm?

Tuy nhiên, khi họ nhấp vào nút, phương thức onClick của tôi kích hoạt và thực hiện mọi thứ, tuy nhiên bàn phím mềm vẫn nằm trên màn hình và EditText vẫn được đánh dấu bằng con trỏ.

Tôi cũng có, ở phía trên của nút onclick:

findViewById(R.id.name).clearFocus(); 

Mặc dù vậy, các EditText dường như không rõ ràng trọng tâm của nó. Làm cách nào để nút thực sự hoạt động như thể nó đang gửi biểu mẫu?

Ngoài ra, tôi không chuyển sang Hoạt động khác khi nhấp vào nút. Tôi cho rằng đó là trường hợp điển hình, và có lẽ lý do tại sao họ không bận tâm giấu bàn phím. Tuy nhiên tôi muốn giữ hộp tìm kiếm và nút ở đầu màn hình, vì vậy tôi chỉ điền và thêm chế độ xem vào màn hình khi nhấn nút.

Làm cách nào để đạt được hành vi mong muốn?

Trả lời

13

Bạn có thể ẩn bàn phím bằng cách gọi điện thoại này.

InputMethodManager imm = (InputMethodManager) getSystemService(
    INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(getWindowToken(), 0); 
+0

Có nhưng đó thực sự là cách tốt nhất để thực hiện việc này? – Ricket

+0

Vâng, nó hoạt động ... Vì vậy, tôi đoán đó là okay ... Vẫn có vẻ như một hack mặc dù ... – Ricket

+1

Nó không phải là một hack, đó là cách nó được thực hiện trên tất cả các nguồn Android. Tôi giả định rằng nó dành cho người dùng nhấn xong để đóng IME, nhưng nếu họ không hoặc nếu bạn muốn đóng nó bằng tay, thì đây là cách bạn phải đóng IME trước khi Android tự đóng nó lại. –

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