0
を変更する:は、私は次のようなレイアウトを持っているのEditTextの値ブロックにキーボード
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/others"
android:id="@+id/input_others" />
<EditText
android:minEms="2"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:paddingLeft="@dimen/number_input_padding"
android:paddingRight="@dimen/number_input_padding"
android:id="@+id/input_others_number"
android:text="@string/others_default"/>
</LinearLayout>
ユーザーがのEditTextに触れた場合は、チェックボックスをチェックする必要があり、その値を削除する必要があります。
final CheckBox othersButton = findViewById(R.id.input_others);
final EditText othersNumber = findViewById(R.id.input_others_number);
othersNumber.setOnFocusChangeListener((view, hasFocus) -> {
if (hasFocus) {
othersButton.setChecked(true);
othersNumber.setText("");
}
});
問題は、私がEditTextに触れると、フォーカスが得られても(下の線の色が違う)、キーボードは表示されません(2番目のタッチの場合のみ)。しかし、もし私がothersNumber.setText("");
という行を削除したら、キーボードは第1タッチの細かいところに現れます。
なぜそれが起こっているのですか、それを修正する方法はありますか?私はキーボードを強制的に表示することができますが、私はそれがここで必要とは思わない。 (hasFocus)場合
返信ありがとうございますが、これは私が探しているものではありません。私はキーボードを一時的に表示させるためにこれを私のコードに追加しました。しかし、通常これは良い解決策ではありません。たぶん、私はそれらのことがどう働くのか誤解します。 – klenium