如何防止用户输入零作为输入?

时间:2013-11-27 17:05:15

标签: android validation android-edittext

我正在尝试将输入验证添加到用户输入数值的三个EditTexts集合中。 我面临的问题是计算工作,用户不能输入零​​作为输入字段之一,否则应用程序将崩溃。

我尝试实现以下内容以防止输入零并显示警告消息。我收到一条错误,指出“无法启动活动calcResult”,这是显示计算的活动。

这是错误日志的链接:http://pastebin.com/hDsabjR6

我从中理解,零值仍然在验证中滑落,但我不知道为什么?

 String getoffsetlength = offsetLength.getText().toString(); 

 if (getoffsetlength.trim().equals('0')) {

     Toast.makeText(this, "Enter number greater than 0!", Toast.LENGTH_SHORT).show();
     return;
   }

当我在app中使用此验证时,应用程序崩溃了。关于我搞砸了这个实现的哪些想法?

3 个答案:

答案 0 :(得分:7)

只需将android:digits="123456789"添加到XML中的EditText即可。这样用户将无法输入0

[编辑]

但是,如果您想避免用户仅在开头输入0,请使用以下内容:

code_text.addTextChangedListener(new TextWatcher(){
            public void onTextChanged(CharSequence s, int start, int before, int count)
            {
                if (code_text.getText().toString().matches("^0") )
                {
                    // Not allowed
                    Toast.makeText(context, "not allowed", Toast.LENGTH_LONG).show();
                    code_text.setText("");
                }
            }
            @Override
            public void afterTextChanged(Editable arg0) { }
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
        }); 

答案 1 :(得分:2)

试试这个

if(getoffsetlength.trim().equalsIgnoreCase("0"){
 Toast.makeText(this, "Enter number greater than 0!", Toast.LENGTH_SHORT).show();
 return;
}

答案 2 :(得分:0)

您也可以使用以下代码

FacesContext context = event.getFacesContext();
WebSession webSession = context.getApplication().evaluateExpressionGet(context, "#{ws}", WebSession.class);