9

自動大文字と自動修正を実装してEditTextを作成しようとしています。私は手動でInputFilterを自動大文字化を許可するために追加する方法を考え出しましたが、の後にの最初の文字が入力され、私は自動修正で幸運を覚えていませんでした(AutoTextを使用したInputFilterを作成しようとしました。どのようにすべての作品がわからない)。理想的には、すべてを処理するためにEditText.setInputType(...)を使うことができましたが、これまではこれが機能していませんでした。これを達成する方法はありますか?失敗した試行は下に示されています(私はちょうど正常な入力を得ます)。AndroidでEditTextに複数の入力タイプを設定するにはどうすればよいですか?

EditText mEditText = new EditText(this); 
int inputType = InputType.TYPE_CLASS_TEXT; 
if (auto_capitalize) { 
    inputType = mEditText.getInputType() | InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS; 
} 
if (auto_correct) { 
    inputType = mEditText.getInputType() | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT; 
} 
mEditText.setInputType(inputType); 

私はコードでこのEditTextを作成するためのソリューションで唯一興味を持って、注意してください - ないXMLを介し。

編集

しかし私は、これを使用しようとした後、TextKeyListenerを記述したサウンド新しい文書が見つかりました:KeyListenerに影響を与えないように、

mEditText.setKeyListener(new TextKeyListener(TextKeyListener.Capitalize.CHARACTERS, true)); 

をしてsetRawInputTypeを使用しての@のfarble1670のアイデアを使用してsでは、まだテキストに変更はありません。

答えて

2

はい、うまくいくようです。ただし、ドキュメントで

入力 方法は、ユーザーがテキストを入力できるようにする方法を決定するのを助けるために使用されるテキストフィールドに置かれているデータの種類を探して。ここでの定数 は、InputTypeで定義された定数に対応します。一般的には の単一値を選択できますが、表示されているとおりに組み合わせることもできます。 この属性をnone以外に設定すると、 テキストが編集可能であることも意味します。

http://developer.android.com/reference/android/widget/TextView.html#attr_android:inputType

一般的に、あなたは2つの値を設定することを期待することはできませんのようなので、それが見えます。

また、android:setInputTypeを見ると、これはsetInputType()メソッドではなくsetRawInputType()メソッドに対応しています。 setInputType()の代わりにsetRawInputType()を呼び出そうとするかもしれません。 XMLを通じて

http://developer.android.com/reference/android/widget/TextView.html#setRawInputType(int

+0

ありがとうございました、これは私を新しい方向に向かわせ、 'TextKeyListener'を見つけました。唯一のことは、どちらもうまく動作していないようです... – Phil

29

それはそうのような設定になります。

android:inputType="textMultiLine|textNoSuggestions" 

変数間にパイプ(|)を追加するだけです。私はあなたがコードによってそれをやっているのを見ていますが、私はちょうど参照のためにそこにこれを投げていました。

+1

私の質問は、私が 'XML'ソリューションに興味を持っていないことを具体的に述べています。 – Phil

+2

検索中にあなたの質問を見つけましたが、これを見つけた次の人のXMLソリューションを入れていましたが、私のようにXMLソリューションを探していました.... – f1vefour

6

質問に対する回答が見つかりました。後でスレッドに来る人には、その答えが役立つかもしれません。したがって、|(パイプ)を使用してXMLと同様に複数のタグを設定できます。

EditText mEditText = new EditText(this); 
mEditText.setInputType(InputTpe.TYPE_TEXT_FLAG_CAP_CHARACTERS|InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); 

また、あなたのsituationに応じて、あなたがsetInputTypesetRawInputypeを使用する場合がありますよう 何か。

+0

これは正しい解決策です。 – Tommie

関連する問題