Java 如何确保用户在加载下一屏幕之前输入所有详细信息

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

我希望用户在加载下一个屏幕之前在edittext中输入所有文本。如果用户按done,但他们尚未填写所有详细信息,则应显示一条消息,告诉他们这样做

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;它现在保留在屏幕上,但当我输入所有详细信息时,它仍保留在同一屏幕上,并显示消息“输入所有详细信息”