LoginSignup
0
0

More than 5 years have passed since last update.

EditTextをタップした時に、ソフトキーボードを表示しない

Posted at

EditText をタップしたときにソフトキーボードを表示しないようにしたいのです。

具体的には、計算機アプリで、式の表示画面をEditTextで作成し、そのEditTextには、自分で作ったボタン以外の文字は一切入力できないようにします。

また、好きな位置に数字などを入力できるようにするために、Text ViewではなくEditTextを使いたいです。
ですので、EditTextをタップすることで文字のタップ位置にカーソル位置は変わりつつ(フォーカスはあたったままで)、ソフトキーボードを表示しないようにしたいと考えています。

実際に、ZenUIの電卓アプリや、万能計算機というアプリでは、そのような仕様がなされています。

試したこと

インターネットで色々調べたのですが、Activity起動時にソフトキーボードを非表示にする方法はいくつか見つけましたが、Activity起動後にEditTextをタップした時にソフトキーボードは表示されてしまいます。
具体的には、
http://qiita.com/hishida/items/8bf1aa28ef62ef22a7f9
に載っていることを試しました。

また、EditTextのfocusableをfalseにするなど、編集不可の状態にしてしまうとカーソルが表示されません。
EditTextのeditableをfalseにしても編集不可の状態になってcursorが表示されません。

また、EditTextにオンタッチリスナーを設定し、MOTION_DOWNやMOTION_UPなどでソフトキーボードを非表示にするコードを書き、return false
にしても、オンタッチリスナーのあとにソフトキーボードが表示されるので、ソフトキーボードが閉じた後にまたソフトキーボードが立ち上がります。

また、オンタッチリスナーでreturn true にすると、EditTextのメソッド自体が呼ばれないのだと思いますが、ソフトキーボードは表示されないのですが、カーソルは最初の位置にとどまったままで、タップした位置にカーソルは移動しません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0