13

プログラムでフォーカスを渡す EditText があります。しかし、そうするときは、キーボードも表示する必要があります (そして、その EditText がフォーカスを失うとダウンします)。現在、ユーザーは EditText をクリックしてキーボードを表示する必要があります。EditText には既にフォーカスがありますが。

4

5 に答える 5

23
<activity   android:name=".YourActivity"
            android:windowSoftInputMode="stateVisible" />

これをマニフェスト ファイルに追加します...

于 2013-08-14T17:04:54.830 に答える
19

これは、キーボードを表示する方法です。

EditText yourEditText= (EditText) findViewById(R.id.yourEditText);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);
于 2013-08-14T16:59:52.813 に答える
7

マニフェストのアクティビティに対してこれを設定すると、画面に EditText ボックスが含まれているときにキーボードが自動的にポップされます

<activity android:windowSoftInputMode="stateAlwaysVisible" ... />

フォーカスを失ったときにキーボードを非表示にするには、 EditText の OnFocusChangeListener を設定します。

onCreate() で

EditText editText = (EditText) findViewById(R.id.textbox);
OnFocusChangeListener ofcListener = new MyFocusChangeListener();
editText.setOnFocusChangeListener(ofcListener);

このクラスを追加

private class MyFocusChangeListener implements OnFocusChangeListener {

    public void onFocusChange(View v, boolean hasFocus){

        if(v.getId() == R.id.textbox && !hasFocus) {

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

        }
    }
}
于 2013-08-14T17:05:32.120 に答える
6

キーボードを表示するには、次のコードを使用します。

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT);

キーボードを非表示にするには、以下のコードを使用します。et は EditText への参照です

InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(getActivity().INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(et.getWindowToken(), 0);
于 2013-08-14T17:00:54.313 に答える
0

フォーカスリスナーに基づいてそれを行うには、次のようにする必要があります。

final InputMethodManager imm =(InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
editText.setOnFocusChangeListener(new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if(hasFocus){
                imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT);
            }else{
                 imm.hideSoftInputFromWindow(et.getWindowToken(), 0);
            }
            imm.toggleSoftInput(0, 0);
        }
    });

お役に立てれば。

よろしく!

于 2013-08-14T17:04:41.663 に答える