EditText不接受Android号码

时间:2015-05-30 10:05:06

标签: android xml validation input android-edittext

我正在为Android开发一个应用程序,我的EditText有问题:我无法在其上写数字。我创建了一个函数,以便我的用户在单击“确定”时可以在EditText中验证答案,但是,使用此功能,他们无法在我的EditTexts上写入数字。

这是我的函数代码:

ed.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                ed.setOnKeyListener(new View.OnKeyListener() {
                    @Override
                    public boolean onKey(View v, int keyCode, KeyEvent event) {
                            if (keyCode == 66){
                                if (ed.getText().toString().equals(rep)) {
                                    k++;
                                    if (k == 1) {
                                                Intent ActivityTransition = new Intent(Level6f.this, Transition6.class);
                                                startActivityForResult(ActivityTransition, KEY1);
                                    }
                                }
                                else {
                                    ed.getText().clear();
                                    Vibrator vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
                                    vib.vibrate(50);
                                }
                            }
                        if (keyCode == 67) {
                            ed.getText().clear();
                        }
                        return true;
                    }
                });

            }
        });

这是我的XML EditText的代码:

 <EditText
        android:layout_width="110dp"
        android:layout_height="45dp"
        android:inputType="textVisiblePassword"
        android:id="@+id/editText"

        android:textSize="22sp"
        android:layout_above="@id/curseur"
        android:layout_centerHorizontal="true"/>

3 个答案:

答案 0 :(得分:3)

Use this line in your xml (EditText)   

android:inputType="number|numberDecimal"

this line allows number and number decimal.
  

示例 -

<EditText
   android:layout_width="110dp"
   android:layout_height="45dp"
   android:inputType="number|numberDecimal|textVisiblePassword"    
   android:id="@+id/editText"
   android:textSize="22sp"
   android:layout_above="@id/curseur"
   android:layout_centerHorizontal="true"/>

答案 1 :(得分:2)

我认为你可以使用

android:imeOptions="actionDone" 

在您的xml中而不是android:inputType="textVisiblePassword"

答案 2 :(得分:1)

创建自己的确定按钮。使用Tablerow环绕editText并将ok按钮放在那里。

<TableRow
    android:id="@+id/tableRow1"
    android:layout_width="110dp"
    android:layout_height="45dp"
    android:layout_above="@id/curseur" >
<EditText
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:id="@+id/editText"
    android:textSize="22sp"
    android:layout_centerHorizontal="true"/>

 <Button
        android:id="@+id/okbutton"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:text="Ok"
        android:textColor="#000000"
        android:textSize="22sp"
        android:textStyle="bold" />

</TableRow>