我有两个 EditText 条目,一个用于名称,另一个用于年龄,第二个接收 TextUtils 错误
I have two EditText entries, one for a name and the other for an age receive errors for TextUtils on the second
我在应用程序中有两个 EditText 字段。第一个 EditText 设置为接受字符串,在我的例子中是一个名称:
EditText nameField = (EditText) findViewById(R.id.nameOfCustomer);
String name = nameField.getText().toString();
我在应用程序中有两个 EditText 字段。第一个 EditText 设置为接受字符串,在我的例子中是一个名称:
EditText nameField = (EditText) findViewById(R.id.nameOfCustomer);
String name = nameField.getText().toString();
然后我为第一个 EditText 添加了以下 java 代码以检查空值:
if(TextUtils.isEmpty(name))
{
Toast.makeText(this, "Please Enter Name ",Toast.LENGTH_LONG).show();
return;
}
这很好用,当 TextUtils.isEmpty 为 true 时,如果第一个 EditText 字段中没有任何输入,它会显示 toast。
第二个 EditText 的输入类型设置为 android:inputType="number" 因为我只想让用户输入数字
我已经为第二个 EditText 复制了相同的代码:
EditText nameField2 = (EditText) findViewById(R.id.ageOfPatient);
String name2 = nameField2.getText().toString();
我在解析为整数之前检查它是否为空:
if(TextUtils.isEmpty(name2)){
Toast.makeText(this, "Please Enter Patient Age ",Toast.LENGTH_SHORT).show();
return;
}
int val = Integer.parseInt( nameField2.getText().toString() );
但是,它不识别空条件并导致应用程序崩溃。我找不到任何有用的东西。
如有任何建议,我们将不胜感激!
然后我为第一个 EditText 添加了以下 java 代码以检查空值:
if(TextUtils.isEmpty(name)) {
Toast.makeText(this, "Please Enter Name ",Toast.LENGTH_LONG).show();
return;
}
这很好用,当 TextUtils.isEmpty 为 true 时,如果第一个 EditText 字段中没有任何输入,它会显示 toast。
第二个 EditText 的输入类型设置为 android:inputType="number" 因为我只想让用户输入数字
我已经为第二个 EditText 复制了相同的代码:
EditText nameField2 = (EditText) findViewById(R.id.ageOfPatient);
String name2 = nameField2.getText().toString();
我在解析为整数之前检查它是否为空:
if(TextUtils.isEmpty(name2)){
Toast.makeText(this, "Please Enter Patient Age ",Toast.LENGTH_SHORT).show();
return;
}
int val = Integer.parseInt( nameField2.getText().toString() );
但是,它不识别空条件并导致应用程序崩溃。我找不到任何有用的东西。如有任何建议,我们将不胜感激!
我认为您正在寻找以下代码。如果您提供错误日志,它会更清楚。即使在表单验证失败后,您很可能仍在提交表单。
public class OPDForm extends AppCompatActivity implements View.OnClickListener {
private EditText nameOfCustomer;
private EditText ageOfPatient;
private Button addButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_opd_form);
nameOfCustomer = (EditText) findViewById(R.id.nameOfCustomer);
ageOfPatient = (EditText) findViewById(R.id.ageOfPatient);
addButton = (Button) findViewById(R.id.addButton);
addButton.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (view == addButton) {
addButton.requestFocus();
if(isValidForm()) {
//Submit Form Here
//Most likely you are invoking below line even after validation fails, but now we are it will be called only when your form validation will get success
int val = Integer.parseInt( ageOfPatient.getText().toString() );
}
}
}
private boolean isValidForm() {
if(TextUtils.isEmpty(nameOfCustomer.getText().toString())) {
Toast.makeText(this, "Please Enter Name ", Toast.LENGTH_LONG).show();
return false;
} else if(TextUtils.isEmpty(ageOfPatient.getText().toString())) {
Toast.makeText(this, "Please Enter Patient Age ", Toast.LENGTH_LONG).show();
return false;
}
return true;
}
}
我发现第二个 EditText 有 android:text 而不是 Android:hint,所以空检查器看到的是文本而不是我认为的提示,呃。当我在测试模式下删除文本并发现代码工作正常时,我偶然发现了这个问题,所以我回去比较两个 EditText 字段上的代码,果然,第二个文本有 android:text 而不是 android:hint.感谢所有帮助我的人。正如我所说,我是一个新手,但学得很快。再次感谢大家!汤姆
我在应用程序中有两个 EditText 字段。第一个 EditText 设置为接受字符串,在我的例子中是一个名称:
EditText nameField = (EditText) findViewById(R.id.nameOfCustomer);
String name = nameField.getText().toString();
我在应用程序中有两个 EditText 字段。第一个 EditText 设置为接受字符串,在我的例子中是一个名称:
EditText nameField = (EditText) findViewById(R.id.nameOfCustomer);
String name = nameField.getText().toString();
然后我为第一个 EditText 添加了以下 java 代码以检查空值:
if(TextUtils.isEmpty(name))
{
Toast.makeText(this, "Please Enter Name ",Toast.LENGTH_LONG).show();
return;
}
这很好用,当 TextUtils.isEmpty 为 true 时,如果第一个 EditText 字段中没有任何输入,它会显示 toast。
第二个 EditText 的输入类型设置为 android:inputType="number" 因为我只想让用户输入数字
我已经为第二个 EditText 复制了相同的代码:
EditText nameField2 = (EditText) findViewById(R.id.ageOfPatient);
String name2 = nameField2.getText().toString();
我在解析为整数之前检查它是否为空:
if(TextUtils.isEmpty(name2)){
Toast.makeText(this, "Please Enter Patient Age ",Toast.LENGTH_SHORT).show();
return;
}
int val = Integer.parseInt( nameField2.getText().toString() );
但是,它不识别空条件并导致应用程序崩溃。我找不到任何有用的东西。
如有任何建议,我们将不胜感激!
然后我为第一个 EditText 添加了以下 java 代码以检查空值:
if(TextUtils.isEmpty(name)) {
Toast.makeText(this, "Please Enter Name ",Toast.LENGTH_LONG).show();
return;
}
这很好用,当 TextUtils.isEmpty 为 true 时,如果第一个 EditText 字段中没有任何输入,它会显示 toast。
第二个 EditText 的输入类型设置为 android:inputType="number" 因为我只想让用户输入数字
我已经为第二个 EditText 复制了相同的代码:
EditText nameField2 = (EditText) findViewById(R.id.ageOfPatient);
String name2 = nameField2.getText().toString();
我在解析为整数之前检查它是否为空:
if(TextUtils.isEmpty(name2)){
Toast.makeText(this, "Please Enter Patient Age ",Toast.LENGTH_SHORT).show();
return;
}
int val = Integer.parseInt( nameField2.getText().toString() );
但是,它不识别空条件并导致应用程序崩溃。我找不到任何有用的东西。如有任何建议,我们将不胜感激!
我认为您正在寻找以下代码。如果您提供错误日志,它会更清楚。即使在表单验证失败后,您很可能仍在提交表单。
public class OPDForm extends AppCompatActivity implements View.OnClickListener {
private EditText nameOfCustomer;
private EditText ageOfPatient;
private Button addButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_opd_form);
nameOfCustomer = (EditText) findViewById(R.id.nameOfCustomer);
ageOfPatient = (EditText) findViewById(R.id.ageOfPatient);
addButton = (Button) findViewById(R.id.addButton);
addButton.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (view == addButton) {
addButton.requestFocus();
if(isValidForm()) {
//Submit Form Here
//Most likely you are invoking below line even after validation fails, but now we are it will be called only when your form validation will get success
int val = Integer.parseInt( ageOfPatient.getText().toString() );
}
}
}
private boolean isValidForm() {
if(TextUtils.isEmpty(nameOfCustomer.getText().toString())) {
Toast.makeText(this, "Please Enter Name ", Toast.LENGTH_LONG).show();
return false;
} else if(TextUtils.isEmpty(ageOfPatient.getText().toString())) {
Toast.makeText(this, "Please Enter Patient Age ", Toast.LENGTH_LONG).show();
return false;
}
return true;
}
}
我发现第二个 EditText 有 android:text 而不是 Android:hint,所以空检查器看到的是文本而不是我认为的提示,呃。当我在测试模式下删除文本并发现代码工作正常时,我偶然发现了这个问题,所以我回去比较两个 EditText 字段上的代码,果然,第二个文本有 android:text 而不是 android:hint.感谢所有帮助我的人。正如我所说,我是一个新手,但学得很快。再次感谢大家!汤姆