0

我的代码遇到了一个奇怪的问题。这是我的布局:

<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。我要疯了才能找到解决方案,我该怎么办?

4

0 回答 0