前提・実現したいこと
EditText をタップしたときにソフトキーボードを表示しないようにしたいのです。
具体的には、計算機アプリで、式の表示画面をEditTextで作成し、そのEditTextには、自分で作ったボタン以外の文字は一切入力できないようにします。
また、好きな位置に数字などを入力できるようにするために、Text ViewではなくEditTextを使いたいです。
ですので、EditTextをタップすることでカーソル位置は変わりつつ(フォーカスはあたったままで)、ソフトキーボードを表示しないようにしたいと考えています。
実際に、ZenUIの電卓アプリや、万能計算機というアプリでは、そのような仕様がなされています。
試したこと
インターネットで色々調べたのですが、Activity起動時にソフトキーボードを非表示にする方法はいくつか見つけましたが、Activity起動後にEditTextをタップした時にソフトキーボードは表示されてしまいます。
具体的には、
http://qiita.com/hishida/items/8bf1aa28ef62ef22a7f9
に載っていることを試しました。
また、EditTextのfocusableをfalseにするなど、編集不可の状態にしてしまうとカーソルが表示されません。
また、EditTextにオンタッチリスナーを設定し、MOTION_DOWNやMOTION_UPなどでソフトキーボードを非表示にするコードを書き、return false
にしても、オンタッチリスナーのあとにソフトキーボードが表示されるので、ソフトキーボードが閉じた後にまたソフトキーボードが立ち上がります。
また、オンタッチリスナーでreturn true にすると、EditTextのメソッド自体が呼ばれないのだと思いますが、ソフトキーボードは表示されないのですが、カーソルは最初の位置にとどまったままで、タップした位置にカーソルは移動しません。
なお、xmlにEditTextのみという最小構成で試してみてはいるのですが、editableをfalseにすると、ソフトキーボードは表示されなくなるのですが、カーソルは消えてしまいます。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/13 00:05
2016/11/13 05:30