Android onFocusChange中的验证
我有多个Android onFocusChange中的验证,android,Android,我有多个编辑文本。 如何验证EditText中是否有“”,如果EditText为“”,则我希望用户在进入edittext2之前必须输入一个数字 如何做到这一点 case R.id.P2Throw1Set2: p212r.setText(String.valueOf(Integer.parseInt(p2score.getText().toString()) - Integer.parseInt(p212.getText().toString()))); p2score.setTe
编辑文本
。
如何验证EditText
中是否有“”,如果EditText
为“”,则我希望用户在进入edittext2之前必须输入一个数字
如何做到这一点
case R.id.P2Throw1Set2:
p212r.setText(String.valueOf(Integer.parseInt(p2score.getText().toString()) - Integer.parseInt(p212.getText().toString())));
p2score.setText(String.valueOf(Integer.parseInt(p212r.getText().toString())));
break;
case R.id.P2Throw2Set2:
p222r.setText(String.valueOf(Integer.parseInt(p2score.getText().toString()) - Integer.parseInt(p222.getText().toString())));
p2score.setText(String.valueOf(Integer.parseInt(p222r.getText().toString())));
break;
case R.id.P2Throw3Set2:
p232r.setText(String.valueOf(Integer.parseInt(p2score.getText().toString()) - Integer.parseInt(p232.getText().toString())));
p2score.setText(String.valueOf(Integer.parseInt(p232r.getText().toString())));
break;
case R.id.P2Throw4Set2:
p242r.setText(String.valueOf(Integer.parseInt(p2score.getText().toString()) - Integer.parseInt(p242.getText().toString())));
p2score.setText(String.valueOf(Integer.parseInt(p242r.getText().toString())));
break;
您必须禁用除第一个编辑文本之外的所有文本,并且只有在用户提供了令人满意的输入时才启用它们。然后将parseInt()调用包装在try/catch块中,如下所示:
case R.id.P2Throw2Set2:
try
{
p222r.setText(String.valueOf(Integer.parseInt(p2score.getText().toString()) -
Integer.parseInt(p222.getText().toString())));
p2score.setText(String.valueOf(Integer.parseInt(p222r.getText().toString())));
// if the previous lines worked, this will work
p232r.setEnabled(true);
}
catch(NumberFormatException e)
{
// user entered "" or the value was null
// in this case, we leave the next edit text disabled
}
break;
回答有点晚,但您可能需要了解一下BARACUS框架中针对Android应用程序的设计和实现,以解决Android应用程序中的验证问题。由于这些东西是开源的,如果你不想使用框架,可以随意使用源代码片段进行验证