【问题标题】:EditText does not accept numbers AndroidEditText 不接受数字 Android
【发布时间】:2015-08-13 05:13:36
【问题描述】:

我正在为 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:inputType="textVisiblePassword"
  • 你想阻止编辑文本中的数字吗?
  • 我不想删除行 android:inputType="textVisiblePassword" 因为如果我这样做,它不会是键盘上的“确定”按钮。是另一个允许显示“确定”按钮的 inputType 吗?

标签: android xml validation input android-edittext


【解决方案1】:
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"/>

【讨论】:

    【解决方案2】:

    我认为你可以使用

    android:imeOptions="actionDone" 
    

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

    【讨论】:

      【解决方案3】:

      创建您自己的确定按钮。用 Tablerow 包围 editText 并把确定按钮放在那里。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-14
        • 2014-03-10
        • 2012-03-09
        相关资源
        最近更新 更多