【发布时间】:2019-11-05 02:00:29
【问题描述】:
我正在做作业,而且我已经很孤单了。我在应用程序中的下一步是 * 客户 ID 应介于 0-1000 之间。如果用户输入任何大于 1000 的值,则需要显示错误消息。
我不知道该怎么做。我正在观看视频并访问其他网站以查看是否有类似的内容,但没有点击。到目前为止,这是我的代码。
String name, address;
int custID= 0;
EditText nameInput;
EditText addressInput;
EditText custIDInput;
Button submitButton;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nameInput = this.<EditText>findViewById(R.id.NameeditText);
addressInput = this.<EditText>findViewById(R.id.addresseditText);
custIDInput = this.<EditText>findViewById(R.id.CustIDeditText);
submitButton = this.findViewById(R.id.SubmitButton);
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) throws IndexOutOfBoundsException {
Intent i = new Intent(MainActivity.this, Customer.class);
name = nameInput.getText().toString();
address = addressInput.getText().toString();
custID = Integer.valueOf(custIDInput.getText().toString());
if(! custID > 0 && < 1000)
custIDInput.setError("Error Customer ID: enter number 1-1000");
i.putExtra("Value1", name);
i.putExtra("Value2", custID);
startActivity(i);
finish();
有人可以解释我做错了什么吗?有什么我需要导入的吗? 谢谢!
【问题讨论】:
-
从我看到的设置错误的条件来看,您输入的条件似乎无效。 (这应该只是客户 ID 超过 1000 的一种情况。您不必反转条件的结果 - 这不是反转多个条件的正确方法。)(PS 条件是否也说明错误如果输入的ID小于0,应该显示?)
-
我猜不是...让我看看当我删除多余的条件时会发生什么。
-
其次,请考虑格式化您的代码,使其更易于阅读。
-
这样就修复了我收到的错误,但错误消息和约束仍然不起作用。
-
顺便说一句,如果你不明白我的意思,本质上是检查
custID是否大于1000,如果是,则设置错误。 (或者,您还可以在条件语句中添加一个else块,将错误设置为空,这样如果用户的输入在约束 0 - 1000 内,则不会显示错误。)
标签: android validation android-edittext int