使用数字键盘更改键盘的文本键盘

时间:2017-05-04 07:24:29

标签: android android-edittext android-button android-keypad

我有EditText,输入类型是textNoSuggestions。

 <android.support.design.widget.TextInputLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="16dp"
                    android:layout_marginRight="16dp"
                    android:layout_marginTop="5dp">

                    <EditText
                        android:id="@+id/firstName"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:ems="10"
                        android:hint="Name"
                        android:inputType="textNoSuggestions" />
                </android.support.design.widget.TextInputLayout>

此外我有一个按钮,在按钮onclick方法我尝试更改键盘的输入类型。这是一个来源

 final Button changeKeyboard = (Button) dialog.findViewById(R.id.change_keyboard);
    changeKeyboard.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            firsName.setRawInputType(InputType.TYPE_CLASS_NUMBER);

        }
    });

键盘显示时,是否可以在按键单击时更改键盘的输入类型? 感谢每个人如何解决我的问题

3 个答案:

答案 0 :(得分:0)

set是setTransformationMethod(),而不是setInputType()。如下所示:

firstName.setTransformationMethod(numberTransformationMethod.getInstance());

答案 1 :(得分:0)

在您的代码上,更改:

firsName.setRawInputType(InputType.TYPE_CLASS_NUMBER);

到此(带有“t”的firstName,xml上的名称):

firstName.setRawInputType(InputType.TYPE_CLASS_NUMBER);

此外,您肯定可以更改键盘调用setInputType,如下所示: firstName.setInputType(x),其中 x 是一个int,可以是1(alfanumeric); 2(数字)或3(类似电话)。

编辑:

您可以隐藏键盘,在您的活动中调用此键盘:

public static void hideKeyboard(Activity activity) {
    InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
    //Find the currently focused view, so we can grab the correct window token from it.
    View view = activity.getCurrentFocus();
    //If no view currently has focus, create a new one, just so we can grab a window token from it
    if (view == null) {
        view = new View(activity);
    }
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}

答案 2 :(得分:0)

firsName.setInputType(InputType.TYPE_CLASS_NUMBER);