2013-11-27 80 views
2

我试图将输入验证添加到用户输入数字值的三个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; 
    } 

应用程序崩溃时,我已经在应用程序中使用此验证。任何想法,我已经搞砸了这个实现?

+0

请问你发布错误日志 – Scott

+0

好吧我现在就发布它。 –

+0

http://pastebin.com/hDsabjR6 –

回答

6

只需将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) {} 
     }); 
+0

将工作,如果用户想输入例如“20”。这将排除用户能够输入零值吗?我的目的是让用户输入任何数字值除空白或0 –

+0

@BrianJ请检查编辑的答案。希望它有帮助。 – JoelFernandes

2

试试这个

​​
0

你也可以使用下面的代码

 int PreviousLen; 
     boolean keyDel; 
     etActLoginMobNo.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
      mPreviousLen = s.length(); 
     } 

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

     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      keyDel = mPreviousLen > s.length(); 
      if(!keyDel){ 
       if (etActLoginMobNo.getText().toString().startsWith("0")) { 
        etActLoginMobNo.setText(""); 
        Toast.makeText(context, R.string.enter_mobile_no_without_zero, Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }