0

EditTextにデータを入力するようにユーザーに要求し、データが入力されるまでアプリケーションを続行できないようにするにはどうすればよい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); 
        } 

}}
4

3 に答える 3

0

シュレヤス・タラニ

電話番号を検証する方法... 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(...)、検証をチェックするのではなく、データを送信するだけである必要があります。

于 2012-08-11T15:43:17.517 に答える
0

以下に示すように、ダイアログを表示した後に return ステートメントを追加できます。

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

                            showDialog(EMPTY_TEXT_ALERT);
                            return;
                        }

ただし、showDialog よりも Toast メッセージを使用する方がよいでしょう。

于 2012-08-11T15:43:56.470 に答える
0

send() メソッドをどのように呼び出しているかはわかりませんが、空のエラーが発生した後は、showDialog() の直後に return ステートメントを追加できます。これは、ユーザーがテキストを入力した後、どうにかして send() メソッドを UI 経由で再度呼び出す必要があることを意味します。

send() メソッドが onClick() を介してボタンから呼び出された場合、ユーザーにエラー ダイアログが表示され、テキストを入力してからボタンを押して再度送信することを意味します。

于 2012-08-11T15:44:25.213 に答える