1

EditTextビューでソフトウェアキーボードを無効にするcursorと同時に表示する方法は?

私はstackoverflowですべての例を試して、2つのケースを得ました:

1. キーボードは非表示、カーソルは非表示

2.キーボードが表示され、カーソルが表示されます

しかし、キーボードを非表示にしてカーソルを表示する必要があります。どうやって?

私は次にします:

dialText.setOnFocusChangeListener(new OnFocusChangeListener() {

    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(dialText.getWindowToken(), 0);

    }
});

dialText.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(dialText.getWindowToken(), 0);
        return false;
    }
});

キーボードはまだ非表示になっていません。カーソルを移動すると、キーボードが再び表示されます。

この問題は、Android バージョン 4.0 以降でのみ発生します。

4

4 に答える 4

3

アクティビティタグのマニフェストファイルでこれを使用します。

<activity
        android:name=".ExampleActivity"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar" 
        android:windowSoftInputMode="stateHidden">
</activity>
于 2012-12-24T13:51:39.057 に答える
1

クラスのFocusListenerを使用してキーボードを実装および非表示にします。InputMethodManagerhideSoftInputFromInputMethod

于 2012-12-24T13:49:37.010 に答える
1

フォーカスイベントでこれを行います。EditTextのフォーカスイベントを実装し、hasFocusオブジェクトがtrueであることを確認してから、キーボードとカーソルを表示するか、それ以外の場合は非表示にします

于 2012-12-24T13:42:04.387 に答える