2010-12-29 64 views
5

Tôi có một màn hình khá đơn giản với một vài tiện ích EditText và một nút. Trong trình mô phỏng, khi tôi nhấp vào tiện ích EditText, bàn phím ảo xuất hiện. Tuy nhiên, tôi dường như không thể loại bỏ nó. Nhấp vào một khoảng trống trên màn hình sẽ không làm cho nó biến mất. Chỉ cần nhấp vào phím Quay lại ảo hoặc nút Quay lại phần cứng làm cho nó biến mất.Tại sao bàn phím ảo không hoạt động?

Tôi không có điện thoại Android thực sự tiện dụng, vì vậy đây chỉ là một trình giả lập hoặc nó sẽ như thế này trên thiết bị thực tế. Nếu có, tôi có thể làm gì để làm cho bàn phím ảo biến mất, khi tôi nhấp vào nơi khác trên biểu mẫu?

Trả lời

3

Nhấp vào nút quay lại. Họ bàn phím là một hoạt động. Không có cách nào dễ dàng để xóa bàn phím khi nhấp vào vùng ngẫu nhiên của màn hình.

+0

Do người dùng android nổi tiếng nói chung rằng đây là cách để loại bỏ bàn phím? – AngryHacker

+0

Theo như tôi biết, vâng. – Falmarri

+0

@AngryHacker - "Người dùng Android có biết nói chung rằng đây là cách để xóa bàn phím không?" HTC Desire của tôi có một nút/phím trên bàn phím ảo với biểu tượng bàn phím và 'mũi tên xuống' để ẩn nó khi nhấn. Tôi nghi ngờ điều này cũng giống như nút Back của điện thoại. – Squonk

2

Tôi nghĩ rằng trong trình mô phỏng, bạn có thể nhấn Escape để ẩn bàn phím. Trên một thiết bị thực có một nút ẩn trên bàn phím hoặc bạn có thể nhấn ở nơi khác trong ui. Đó là cách nó hoạt động trên HTC Desire S của tôi anyway.

0

Tôi có Galaxy S2 đang chạy Andriod 2.3.6.
Tôi gặp sự cố với bàn phím không di chuyển ra ngoài đường sau khi nhập văn bản cần thiết khi đăng nhập vào trang web. Tôi thấy rằng nhấn nút quay trở lại phần cứng không có bàn phím ảo trên đường đi. Nhưng thỉnh thoảng nó sẽ đưa trình duyệt web trở lại một trang. Đó là bực bội vì sau đó tôi phải nhập lại thông tin đăng nhập cho bất kỳ trang web nào tôi cũng đang kết nối. Hy vọng Android 4.x đã giải quyết được một số vấn đề khó xử này.

0

Bạn có thể đạt được điều này bằng cách thực hiện các bước sau:

  1. Hãy nhìn cha mẹ (xem nội dung hoạt động của bạn) có thể click và đặt tiêu điểm bằng cách thêm các thuộc tính sau đây

    android:clickable="true" 
        android:focusableInTouchMode="true" 
    
  2. Thực hiện một phương thức hideKeyboard()

    public void hideKeyboard(View view) { 
         InputMethodManager inputMethodManager =(InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE); 
         inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY); 
        } 
    
  3. Cuối cùng , đặt onFocusChangeListener của edittext của bạn.

    edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
         @Override 
         public void onFocusChange(View v, boolean hasFocus) { 
          if (!hasFocus) { 
           hideKeyboard(v); 
          } 
         } 
        }); 
    

Source

1

tôi sống vấn đề này và tôi giải quyết nó. Vấn đề này là khoảng InputMethodManager.SHOW_FORCED giá trị trong dự án của tôi. Khi tôi mở bàn phím bằng cách sử dụng SHOW_FORCED thì khi tôi cố gắng đóng bàn phím, bàn phím không đóng.

Ví dụ:

activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, InputMethodManager.SHOW_FORCED); 

Nếu bạn sử dụng trên đường để mở bàn phím, bạn có thể cố gắng thay đổi SHOW_FORCED giá trị với SHOW_IMPLICIT giá trị

Ví dụ:

activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, InputMethodManager.SHOW_IMPLICIT); 
Các vấn đề liên quan