Về cơ bản, tôi chỉ muốn chuyển sang chế độ bàn phím số ngay khi một EditText nào đó có tiêu điểm.
Về cơ bản, tôi chỉ muốn chuyển sang chế độ bàn phím số ngay khi một EditText nào đó có tiêu điểm.
Câu trả lời:
Tôi thấy việc triển khai này hữu ích, cho thấy một bàn phím tốt hơn và hạn chế ký tự đầu vào.
<EditText
android:inputType="phone"
android:digits="1234567890"
...
/>
Ngoài ra, bạn có thể sử dụng android:maxLength
để giới hạn số lượng tối đa.
Để làm điều này theo chương trình:
editText.setInputType(InputType.TYPE_CLASS_PHONE);
KeyListener keyListener = DigitsKeyListener.getInstance("1234567890");
editText.setKeyListener(keyListener);
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
...
android:inputType="number|phone"/>
sẽ hiển thị pad số lượng lớn như trình quay số.
Bạn có thể làm theo 2 cách
Bộ thời gian chạy
EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
Sử dụng XML
<EditText
...
android:inputType="number" />
Nếu bạn đang sử dụng EditText trong Hộp thoại hoặc tạo động và Bạn không thể đặt nó từ xml thì ví dụ này sẽ giúp bạn trong việc thiết lập loại bàn phím đó trong khi bạn đang sử dụng Chỉnh sửa văn bản, v.v.
myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);
trong đó myEditTxt là đối tượng EDIT TEXT động (tên)
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);
Nhiều loại đầu vào và chi tiết được tìm thấy ở đây trên trang web google
Mã bên dưới sẽ chỉ cho phép các số "0123456789, ngay cả khi bạn vô tình gõ khác" 0123456789, chỉnh sửa văn bản sẽ không chấp nhận.
EditText number1 = (EditText) layout.findViewById(R.id.edittext);
number1.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_CLASS_PHONE);
number1.setKeyListener(DigitsKeyListener.getInstance("0123456789”));
EditText number1 = (EditText) layout.findViewById(R.id.edittext);
number1.setInputType(InputType.TYPE_CLASS_NUMBER);