2016-06-27 11 views
0

Androidキーボードが起動している間に入力に関する質問がありました。私はいくつかの検証(バックエンドで)を実行しており、単一のキーを押した後にキーボードを無効にする機能が必要です。私はキーボードを取り外したくない。私はそれを確認してから再び有効にする機能を無効にしたいだけです。私はこれを行う方法を見つけることができません。ありがとうございました。Androidキーボードが起動しているときにキーボード入力を無効にする

+0

可能な複製:http://stackoverflow.com/questions/25216749/softkeyboard-open-and-close-listener-in-anactivity-in-android – David

+0

@David残念ながら、これはそのpの複製ではありませんost、私はキーボードがアップしている間だけ、ユーザーの入力を無効にするビューを保持したい。私が考えることができる唯一の解決策は、何かの中にユーザーの種類があり、ユーザーが最初に入力した内容を確認するまで自動的に削除した後にユーザーが入力するものです。たとえば、 "cat"検証を行います。実行されていない場合、ユーザーが「a」を押すと、「c」入力が確認されるまで削除されます。 –

答えて

0
あなたは常にこれを整理して、入力フィルタを使用することができます

をあなたのonCreate()で:

:1つの文字にあなたの入力を制限する

editText = (EditText)findViewById(R.id.edittext); 
setEditTextMaxLength(1); 

if(verifiedAtBackend()) { 
    editText.setFilters(new InputFilter[] {}); 
} 

今メソッドを作成し、

private void setEditTextMaxLength(int length) { 
    InputFilter[] FilterArray = new InputFilter[1]; 
    FilterArray[0] = new InputFilter.LengthFilter(length); 
    editText.setFilters(FilterArray); 
} 

private boolean verifiedAtBackend() { 
    //call your backend and see if the verification is true. If it is, return true and the filter would get removed. 
} 
+0

私はこれが私が必要とするものに近いと言いたいと思います。私は最初の値から始めますが、文字の量は変わる可能性があります(1/2/3/4/5/6桁)。それは良いですが、フィルタを設定した後にブロック入力を行います。私は、これを利用できるアンドロイドウィジェットから伸びるカスタムのテキストを作成することができるかもしれません。それはいくつかのまともな調整が必要となり、多くの追加リスナーを使用する必要があります。 –

+0

私は入力を画面に表示する前に確認する必要があることにも言及する必要があります。もし私が "を使用する必要がなかったのは素晴らしいだろう。"または "、"(ピリオドまたはカンマ)キーイベントがこれらに対してトリガされないためです。 –

関連する問題