我有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);
}
});
键盘显示时,是否可以在按键单击时更改键盘的输入类型? 感谢每个人如何解决我的问题
答案 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);