2011-10-05 10 views
5

自分のアプリケーションに自分のキーパッドがあるので、ソフトウェアキーボードを常に非表示にしたい(特定のアクティビティでは&ダイアログ)。私は2つのオプションで実験 :ソフトウェアキーボードがポップアップしないようにするにはどうすればよいですか?

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

このコードは、最初にポップアップからキーボードを防ぐが、私は、テキストボックスをクリックするとキーボードがまだポップ。

InputMethodManager imm = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); 

このコードはキーボードを非表示にしていますが、キーボードのポップアップを妨げません。

お願いします!

+0

チェックアウトこのhttp://stackoverflow.com/questions/7289335/soft-keyboard-shows-up-on-edittext-focus-only -once/7291121#7291121 –

+0

thxしかし、私はそこに別の問題を抱えています...私は最初からキーボードを隠し、私が何をしてもポップアップしないようにしたいです。 – Han

答えて

8

最終的にわかった!

は私がキーボードを抑制したい活動のための

public void supressKeyboard() { 
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
} 

を使用

(他のすべての活動が継承し、一般的な活動にそれを置くことができます)しかし、これは防ぐことはできませんEditTextテキストボックスをクリックするとキーボードがポップアップしなくなります。私がやったことは、私は、テキストボックスのonTouchイベントを消費している:

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    return true; 
} 
+0

これは私が使用するテクニックです – castle1971

+1

あなたはカーソルを表示するのですか?そうですか?タッチイベントを飲み込むと、カーソルが表示されなくなります。 –

+0

この投稿は古いですが、...ハードウェアキーボードで入力することはできますか? –