2

ビューの場合、次の方法でソフトキーボードを無効にしsetInputType(InputType.TYPE_NORMAL)ましたEditText。予想通り、キーボードが無効になります。ビュー上のカーソルも一緒に消えます。

キーボードが無効になっているときにカーソルを戻す方法があるかどうか疑問に思いますか?

前もって感謝します。

4

3 に答える 3

2

これは、Android で報告されている問題です。

http://code.google.com/p/android/issues/detail?id=27609

外付けキーボードを使用できるようにするためにソフト キーボードを無効にしたときに、これを経験しました。この現在の質問に対する別の回答で説明されているように、 setCursorVisible(true) を使用しても、その場合はカーソルを元に戻すことができませんでした。

上記の問題に関するコメントでいくつかの回避策が提案されていますが、すべての場合に機能するとは限りません。

テストの結果、Nexus One スマートフォンの Android 2.3.3 では問題が発生せず (ソフト入力を無効にして Bluetooth キーボードを使用している場合)、Nexus 7 タブレットの Android 4.3 では同じ状況で問題が発生することがわかりました。これは、問題が Android 4.0 以降で発生したことを示す、上記のリンクされた問題に関するコメントと一致しています。

その問題に関する 1 人のコメンターは、setTextIsSelectable() を呼び出すと問題が解決すると報告しており、このメソッドの Javadoc は、API レベル 11 以降で使用できることを示しています。これは、問題が発生しているすべてのデバイスで使用できることを意味します (4.0 は API 15 から開始されるため)。

したがって、考えられるアプローチの 1 つは、リフレクションを使用してこのメ​​ソッドをテストし (またはレベル >= 11 の API をテストするだけ)、メソッドがデバイスで使用可能な場合はメソッドを呼び出すことです。これを行うには、API >= 11 (Project / Properties / Android / Project Build Target in Eclipse - おそらく最新の API だけが最適に機能する) にコンパイルする必要があり、マニフェスト ファイルの targetSdkVersion を少なくとも11 (ここでも、コンパイルした API と一致させるのがおそらく最適です)。

アプリがサポートしていると宣言されている API レベルの一部 (すべてではない) で利用可能な機能の選択的使用に関する詳細については、この回答を参照してください。

Eclipse の「ビルド ターゲット SDK」と AndroidManifest.xml の android:targetSdkVersion の違いは?

私はまだこのアプローチを試していませんが、最終的にはそうするつもりです。それまでの間、他の誰かが試した場合は、それが適切な回避策であるかどうかを示すコメントを以下に追加してください。

于 2013-11-06T11:35:06.893 に答える
0
setCursorVisible(true) this can show the cursor!

android:cursorVisible="false"
于 2012-09-11T09:45:59.933 に答える