• 締切済み

android soft keyboard を消す

アンドロイドのプログラム初心者です。 画面上にEditTextを置いております。 クリック(フォーカス)されるとsoft Keyboardが必ず表示されます。 この表示をさせない方法を探しております。 起動時に表示されないなどのコメントは多数あったのですが、まったく表示させないコメントは見つかりませんでした。よろしくお願いいたします。

みんなの回答

noname#161640
noname#161640
回答No.2

うーん、ひょっとしたら微妙に勘違いしてたかも知れません……。 つまり、編集はできなくていいわけですね。だったら、レイアウトのxmlで、android:editable = "false"を設定して編集不可にしておけばいいように思います。基本的に、フォーカスが当たるとキーボードが出るのは、これはキーボードが出ないと入力ができないわけで、編集可能である限りさけられないと思うので……。 もし、必要に応じて編集もできないといけないとするなら、例えば以下のようなメソッドを定義して設定をON/OFFできるんじゃないかと思いますが(試してないのでちゃんと動くかわかりませんが)。 // EditText editText; とした場合 private void lockUnlock(boolean value) { if (value) { editText.setFilters(new InputFilter[] { new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { return source.length() < 1 ? dest.subSequence(dstart, dend) : ""; } } }); } else { editText.setFilters(new InputFilter[] { new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { return null; } } }); } }

terafield
質問者

お礼

投稿ありがとうございます。 自分なりに調べ、、good-failureさんが言われるようにandroid:editable = "false"や .setSoftInputModeを代入してみたり InputFilter()を入れたりしてみましたが、やはり、キーボードが現れました。どこのサイトも.setSoftInputModeでコントロールできると書いてありました。 で、EditTextのオプションを一つずつ調べ、やっと突き止めました。 Focusable in touch modeがクリックをキャッチしているみたいです。android:focusableInTouchMode="false" と1行入れるとキーボードは現れなくなりました。おかげでソフトを完成することができました。ありがとうございました。

noname#161640
noname#161640
回答No.1

そうですね、ActivityでonCreate時に、以下の文を実行させるなどしたらできないでしょうか。 this.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

terafield
質問者

お礼

さっそく、解答ありがとうございます。 onCreat の次の行に入れてみましたが、EditTextをタップすると、やはりキーボードが出てきます。 今回は編集せずにスクロールだけさせたい。スクロールさすにはタップが必要。で、キーボードが じゃまになってきます。TextViewでは、今度編集したい時に出来なくなってしまいます。 他に方法などありましたら、よろしくお願いいたします。

関連するQ&A

専門家に質問してみよう