كيف يمكنني عرض لوحة مفاتيح الأرقام على Edittext في Android؟

StackOverflow https://stackoverflow.com/questions/1119583

سؤال

أريد فقط التبديل إلى وضع وسادة الرقم بمجرد أن يكون EDITTEXT معين من التركيز.

هل كانت مفيدة؟

المحلول

يمكنك تكوين inputType من اجلك EditText:

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

نصائح أخرى

للقيام بذلك في ملف Java:

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

لقد وجدت هذا التنفيذ مفيد، ويظهر لوحة مفاتيح أفضل وحدود اجراءات المدخلات.

<EditText
    android:inputType="phone"
    android:digits="1234567890"
    ...
/>

بالإضافة إلى ذلك، يمكنك استخدام android:maxLength للحد من الحد الأقصى لكمية الأرقام.

للقيام بهذا برمجيا:

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"/> 

سوف تظهر وسادة عدد كبير مثل المسجل.

يمكنك أن تفعل ذلك 2 طرق

  1. ضبط وقت التشغيل

    EditText input = new EditText(this);
    input.setInputType(InputType.TYPE_CLASS_NUMBER);
    
  2. باستخدام XML.

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

إذا كنت بحاجة إلى رقم كسور، فهذه هي الإجابة لك:

android:inputType="numberDecimal"

إذا كنت تستخدم Edittext الخاص بك في مربع حوار أو إنشاء ديناميكيا ولا يمكنك تعيينه من XML، فسيساعدك هذا المثال في إعداد هذا النوع من لوحة المفاتيح أثناء استخدام نص تحرير ديناميكي وما إلى ذلك

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

حيث myedittxt هو كائن نصي تحرير الديناميكي (الاسم)

المزيد من أنواع الإدخال والتفاصيل الموجودة هنا على موقع Google

سيسمح الرمز أدناه فقط بالأرقام "0123456789"، حتى إذا اكتبت بطريق الخطأ غير "0123456789"، فلن يقبل تحرير النص.

    EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
    number1.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_CLASS_PHONE);
    number1.setKeyListener(DigitsKeyListener.getInstance("0123456789”));
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);

استخدم الرمز أدناه في ملف Java

EDITTEXT.SETRAWINPUTTYPE (التكوين.

حدد هذا في كود XML الخاص بك

android:inputType="number"
EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
number1.setInputType(InputType.TYPE_CLASS_NUMBER);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top