私は基本的に、プログラムでEditTextの数字値を設定しようとしています。これまでのところ:
weightInput.setInputType(InputType.TYPE_CLASS_PHONE);
weightInput.setKeyListener(DigitsKeyListener.getInstance());
これは問題ありませんが、小数点以下(。)も含めたいと思います。何か案は?
回答:
これを試して:
<EditText
android:inputType="number"
android:digits="0123456789."
/>
コードから:
weightInput.setKeyListener(DigitsKeyListener.getInstance("0123456789."));
ただし、ユーザーは複数の「。」を含めることができます。実数については、JoeyRAの回答を参照してください。
TextView
です。ソースを見ると: // If no input type was specified, we will default to generic text, since we can't tell the IME about the set of digits that was selected.
.
9以降の用途は何ですか?
これを試して:
weightInput.setInputType(InputType.TYPE_CLASS_NUMBER);
weightInput.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
weightInput.setKeyListener(DigitsKeyListener.getInstance(false,true));
public static DigitsKeyListener getInstance (boolean sign, boolean decimal)
0から9までの数字に加えて、マイナス記号(先頭のみ)および/または小数点(フィールドごとに1つのみ)を受け入れるDigitsKeyListenerを返します(指定されている場合)。
これにより、多くの「。」に関する問題が解決されます。EditTextで
setInputType
度も何度も、2番目のものを最初のものに上書きしませんか?私はあなたが使うべきだと思うweightInput.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
が、私は100%わからない
を使用しInputType.TYPE_NUMBER_FLAG_DECIMAL
ます。
参照:入力タイプ。
IPアドレス入力用(複数のドットと数字)
試してみてください
<EditText
android:id="@+id/ipBox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/ipAddrHint"
android:inputType="numberDecimal|number"
android:digits="0123456789."
android:textSize="30sp" />
DialerKeyListener
代わりに使用することをおDigitsKeyListener