我正在尝试将输入验证添加到用户输入数值的三个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中使用此验证时,应用程序崩溃了。关于我搞砸了这个实现的哪些想法?
答案 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);