簡體   English   中英

空白EditText上的彈出錯誤

[英]Popup Error on blank EditText

我如何要求用戶將數據輸入到EditTextEditText在填充EditText之前不允許應用程序繼續運行?

現在,即使用戶確認錯誤消息指出EditText為空並且是必需的,我的應用程序仍繼續運行。

         private final static int EMPTY_TEXT_ALERT = 0;

    protected Dialog onCreateDialog(int id) {

    switch(id) {

        case EMPTY_TEXT_ALERT: {
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setMessage("oops!!")
                   .setPositiveButton("ok", new DialogInterface.OnClickListener() {

                       @Override
                       public void onClick(DialogInterface dialog, int which) {
                           dialog.cancel();
                       }
             });

             return builder.create();
        }
    }

    return null;


}




        public void sends(View v) {   

            DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker1);    

            int year = datePicker.getYear();
            int month = datePicker.getMonth();
            int day = datePicker.getDayOfMonth();
                 final EditText phone = (EditText) findViewById(R.id.editText2); 

            final EditText nameplate = (EditText) findViewById(R.id.editText3);  

            final EditText issue = (EditText) findViewById(R.id.editText4);  



                     String ph = phone.getText().toString();
                     if(ph.trim().equals("")) {
                            // text is empty

                            showDialog(EMPTY_TEXT_ALERT);

                        }
                    String np = nameplate.getText().toString();
                    if(np.trim().equals("")) {
                        // text is empty

                        showDialog(EMPTY_TEXT_ALERT);
                    }
                     String i = issue.getText().toString(); 
                     if(i.trim().equals("")) {
                            // text is empty

                            showDialog(EMPTY_TEXT_ALERT);
                        }


                     else
                         {StringBuilder s= new StringBuilder(100);
            s.append(year);
            s.append(". ");
            s.append(month+1);// month starts from 0 in this
            s.append(". ");
            s.append(day);
            s.append(". ");
            s.append(". ");
            s.append(ph);
            s.append(". ");
            s.append(np);
            s.append(". ");
            s.append(i);

            String st=s.toString();


            Intent emailIntentt = new Intent(android.content.Intent.ACTION_SEND); 
            emailIntentt.setType("plain/text");


            String aEmailList[] = { "shreyas.t@gmail.com" };  


            emailIntentt.putExtra(android.content.Intent.EXTRA_EMAIL, aEmailList);  

            emailIntentt.putExtra(android.content.Intent.EXTRA_SUBJECT, "Feedback");  


            emailIntentt.putExtra(android.content.Intent.EXTRA_TEXT, st);


            startActivity(emailIntentt); 
        } 

}}

Shreyas Tallani

如何驗證電話號碼...輸入超過10位數字,應顯示錯誤消息

如果您只是想測試String的長度,只需獲取String並將其長度與最大長度10相比較即可。

在您的validate(...)方法中執行以下操作:

String ph = phone.getText().toString();
if(ph.trim().equals("")) {
    showDialog(EMPTY_TEXT_ALERT);
} else if (ph.length() > 10) {
    showDialog(TEXT_TOO_LONG_ALERT);
}

您還可以使您的EditText僅允許數字值。 這將幫助您驗證數字。 您可以在xml文件或代碼中執行此操作。

XML文件

android:inputType="TYPE_NUMBER_VARIATION_NORMAL"

EditText.setInputType(InputType.TYPE_NUMBER_VARIATION_NORMAL);

你可以做的第一件事,就是添加一個validate(...)方法。 validate(...)內部,您需要驗證所有字段,如果什么都留為空白,則顯示錯誤消息並停止應用進度。

如果所有字段都正確,則調用您的send方法。 send(...)應只發送數據,不檢查驗證。

如下所示,您可以在顯示對話框后添加return語句。

if(i.trim().equals("")) {
                            // text is empty

                            showDialog(EMPTY_TEXT_ALERT);
                            return;
                        }

不過,使用Toast消息比使用showDialog更好。

我不知道您如何調用sends()方法,但是在出現任何空錯誤之后,您只需在showDialog()之后立即添加return語句即可。 這意味着,以某種方式發送()方法通過用戶界面得到重新調用用戶已經建立了文本之后。

如果通過onClick()從按鈕調用了send()方法,則意味着用戶將看到帶有錯誤的對話框,輸入一些文本,然后單擊按鈕以再次發送。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM