我的代码遇到了一个奇怪的问题。这是我的布局:
<RelativeLayout
android:id="@+id/container"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1">
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:background="@android:color/transparent"
android:digits="0123456789,."
android:gravity="center"
android:imeOptions="actionDone"
android:inputType="numberDecimal"
android:selectAllOnFocus="true"
android:textSize="@dimen/sp15" />
</RelativeLayout>
这是打开键盘的代码:
container.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(editText.hasFocus()) {
editText.clearFocus();
}
editText.requestFocus();
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(currentStake, InputMethodManager.SHOW_IMPLICIT);
}
});
现在在大多数设备上,当我点击容器时,edittext 内的文本全部被选中,出现数字键盘,我可以输入数字(例如 15,20 等)。在华为设备上,行为是不同的。事实上,当用户点击编辑文本内的容器文本时,会出现数字键盘,但每次我输入一个数字时,文本都会继续保持选中状态,所以我无法输入 > 9 的数字。例如,如果我输入 20,当我按 2 时,edittext 2 出现(但被选中),当我按 0 时,这会替换 2,所以我在 edittext 中有一个 0 而不是 20。我要疯了才能找到解决方案,我该怎么办?