Java 如何确保用户在加载下一屏幕之前输入所有详细信息
我希望用户在加载下一个屏幕之前在edittext中输入所有文本。如果用户按done,但他们尚未填写所有详细信息,则应显示一条消息,告诉他们这样做Java 如何确保用户在加载下一屏幕之前输入所有详细信息,java,android,exception,android-edittext,Java,Android,Exception,Android Edittext,我希望用户在加载下一个屏幕之前在edittext中输入所有文本。如果用户按done,但他们尚未填写所有详细信息,则应显示一条消息,告诉他们这样做 try { if (Integer.toString(cigSmoked).length() > 0) { cigSmoked = Integer.parseInt(cigSmokedText.getText() .to
try {
if (Integer.toString(cigSmoked).length() > 0) {
cigSmoked = Integer.parseInt(cigSmokedText.getText()
.toString());
editor.putInt("smokedCigaretes", cigSmoked);
editor.commit();
}
if (Integer.toString(cigBox).length() > 0) {
cigBox = Integer.parseInt(cigBoxText.getText()
.toString());
editor.putInt("cigaretteBox", cigBox);
editor.commit();
}
if (Float.toString(cigCost).length() > 0) {
cigCost = Float.parseFloat(cigCostText.getText()
.toString());
editor.putFloat("cigaretteCost", cigCost);
editor.commit();
}
} catch (Exception e) {
Toast.makeText(getApplicationContext(),
"Did NOT save settings, please fill in all fields", Toast.LENGTH_LONG)
.show();
;
}
int day = quitYearText.getDayOfMonth();
int month = quitYearText.getMonth();
int year = quitYearText.getYear();
editor.putInt("day", day);
editor.putInt("month", month);
editor.putInt("year", year);
editor.commit();
Context context = getApplicationContext();
CharSequence text = "Saved!";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
Intent myIntent = new Intent(Settings.this, Home.class);
Settings.this.startActivity(myIntent);
}
您只需从edittext获取值并检查从edittext获取的字符串长度。如下图所示
String str=editext.getText().tostring.trim();
String str2=editext2.getText().tostring.trim();
..
..
if(str.length()>0 || str2.length()>0 ......){
//your navigation code
}else{
//your alert message
}
对每个EditText执行此操作。希望这能对你有所帮助。你可以像下面这样做,不需要写那么多条件
String str=editText1.getText.toString();
String str1=editText2.getText.toString();
.
.
.
.
String strn=editTextn.getText.toString();
if(str.length()>0 || str1.length>0 || strn.length>0){
// whatever code you want to put
}else{
//alert dialog saying field is empty
}
现在检查情况
String str=editText1.getText.toString();
String str1=editText2.getText.toString();
.
.
.
.
String strn=editTextn.getText.toString();
if(str.length()>0 || str1.length>0 || strn.length>0){
// whatever code you want to put
}else{
//alert dialog saying field is empty
}
希望这有助于…编写一个函数
private String validateForm()
{
try
{
if(mEditTextFirstName.getText().toString().trim().equals(""))
{
return "Oops..plz Enter First Name";
}
if(mEditTextLastName.getText().toString().trim().equals(""))
{
return "Oops..plz Enter Last Name";
}
if(mEditTextEmail.getText().toString().trim().equals(""))
{
return "Oops..plz Enter Email";
}
}
catch(Exception e)
{
e.printStackTrace();
}
catch(Error e)
{
e.printStackTrace();
}
return "";
}
那么
那么…什么?您的问题/错误是什么?:)我尝试过这个方法,但是当字段留空时应用程序崩溃。在这里,您还需要检查null值或空值,或者只为所有edittext添加trim()方法,如下所示:String str=edittext.getText().trim().toString;它现在保留在屏幕上,但当我输入所有详细信息时,它仍保留在同一屏幕上,并显示消息“输入所有详细信息”