2011-01-30 13 views
7

を消えるように:のEditTextを入力した後、どのようにキーボードはアンドロイドのチュートリアルから

のEditTextでのクリックは、それはキーボードを持っている
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; 
     } 
    }); 
} 

がフレームに表示されます。私はEnterの後に知りたい。 バックをクリックする以外はフレームからキーボードを外す方法。

enter image description here

答えて

24

は、活性のために、以下の

を試していただきありがとうございます:フラグメントの場合

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

を:

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

ありがとうございました。 – Yoo

14

EditTextボックスを指定すると、android:imeOptions="actionDone" になります。これにより、Enterボタンがキーボードを閉じる完了ボタンに変わります。

+0

ありがとうございます。私はこれがより適切でより適切な答えだと思います。 – Shiun

+2

しかし、警告の言葉:これはそこに電話の100%で動作していないようです – atraudes

+1

@ atraudes私は問題を見ている、一部の携帯電話もsingleline =真を望んでいない外の問題はなかった。 – schwiz

1

ソフトキーボードを取り除く作業アプローチは、リターンキーイベント、ボタン押しイベントなどのTextEditフィールドを無効にしてから有効にすることです。たとえば:

アンドロイド:

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

この回答は質問者の問題には最適ではないかもしれませんが、他のすべてのSOがそこにさらに役立ちます。これは受け入れられた答えでなければなりません。 –

0

私たちは、単に私たちのEditTextにこの属性を追加することができると思います。これは、自動的に単一のライン上にあるテキストを強制しますinputType =「テキスト」

としたがって、Enterをクリックすると、キーボードは消えます。

関連する問題