EditText不接受Android数字



我正在为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"/>

我认为你可以使用

android:imeOptions="actionDone" 

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

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

创建自己的ok按钮。用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>

相关内容

  • 没有找到相关文章

最新更新