2009-07-13 37 views
121

Tôi chỉ muốn chuyển sang chế độ phím số ngay khi một EditText nhất định có tiêu điểm.Làm cách nào để hiển thị bàn phím số trên EditText trong Android?

+4

Câu hỏi không nêu rõ mong muốn thay đổi loại đầu vào được cho phép. Nó chỉ đơn giản là hỏi làm thế nào để thay đổi chế độ bàn phím mà là những gì tôi muốn làm mà không thay đổi kiểu đầu vào. Tất cả các câu trả lời đều giải thích cách thay đổi kiểu đầu vào. – AlanKley

+0

Kiểm tra câu trả lời của tôi về câu hỏi này http: // stackoverflow.com/questions/39593324/cannot-resolve-symbol-showsoftinput/39593871 # 39593871 –

Trả lời

224

Bạn có thể cấu hình một inputType cho EditText của bạn:

<EditText android:inputType="number" ... />
+2

Điều đó thật đáng ngạc nhiên. cổ vũ –

+6

Cũng lưu ý rằng bạn cần nhắm mục tiêu Android 1.5 để sử dụng tính năng này (không có sẵn trong 1.1) – Wilka

+4

Vấn đề là bạn không thể chuyển về. Sử dụng "số | văn bản" cũng không hoạt động. Có vẻ như nếu bạn muốn hiển thị bàn phím số, bạn không thể cho phép nó chuyển về văn bản. –

107

Để làm điều đó trong một file Java:

EditText input = new EditText(this); 
input.setInputType(InputType.TYPE_CLASS_NUMBER); 
44

tôi tìm thấy thi này hữu ích, cho thấy một bàn phím và giới hạn tốt hơn chars đầ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 các số.

Để làm điều này lập trình:

editText.setInputType(InputType.TYPE_CLASS_PHONE); 

KeyListener keyListener = DigitsKeyListener.getInstance("1234567890"); 
editText.setKeyListener(keyListener); 
+0

Có cách nào để thực hiện chương trình này không? Dying để có được một bàn phím số giới hạn cho EditText của tôi nhưng nó được thiết lập theo cách nó phải được tạo ra trong hoạt động. – santafebound

3

Nếu bạn đang sử dụng EditText của bạn trong Dialog hoặc tạo ra tự động và Bạn không thể đặt nó từ xml sau đó ví dụ này sẽ giúp bạn trong việc thiết rằng loại key board trong khi bạn đang sử dụng động Edit Text vv

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER); 

nơi myEditTxt là đối tượng EDIT TEXT động (tên)

10

bạn có thể làm điều đó 2 cách

  1. Runtime thiết

    EditText input = new EditText(this); 
    input.setInputType(InputType.TYPE_CLASS_NUMBER); 
    
  2. Sử dụng XML

    <EditText 
        ... 
        android:inputType="number" /> 
    
17
<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    ... 
    android:inputType="number|phone"/> 

sẽ hiển thị các phím số lớn như quay số.

+0

chính xác những gì tôi cần! – jjLin

0
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER); 
2

Nhiều loại đầu vào và các chi tiết phát hiện here trên google website

4

Nếu bạn cần số phân đoạn, thì đây là câu trả lời dành cho bạn:

android:inputType="numberDecimal" 
0

Xác định điều này trong mã xml của bạn

android:inputType="number" 
0

Sử dụng mã bên dưới trong tệp java

editText.setRawInputType (Configuration.KEYBOARD_QWERTY);

0
EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
number1.setInputType(InputType.TYPE_CLASS_NUMBER); 
+0

Bạn có thể giải thích mã này không? – MBH

Các vấn đề liên quan