2017-08-22 5 views
-2

私はアンドロイドプログラミングでまだ学び続けています。練習のために私は入力として出産年を取るボタンクリックの年齢を計算する非常に単純で基本的なアプリケーションを作成し始めました。 私はそれをうまく動作させることができ、それに対していくつかの検証をしたいと思っています。私が提供している価値が今年以上になるべきではないことを検証しました。私は成功しました。buttonclickイベントでeditTextを検証します。

私の問題は、入力が行われずにボタンが押された場合、Toastによってユーザーに警告する必要があるという検証を入れたいということです。これまで私はやってみたが、たびにeditTextで何もせずにボタンを押すだけでクラッシュする。

ここに私のコードです。

 calcAge.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 



      if(dob > year){ 

       Toast.makeText(getApplicationContext(), "Provide valid Input", Toast.LENGTH_SHORT).show(); 
      } 

      else if(String.valueOf(dob) == null){ 

       Toast.makeText(getApplicationContext(), "Please Provide Some Input", Toast.LENGTH_SHORT).show(); 
      } 

      else{ 


       dob = Integer.parseInt(String.valueOf(inAge.getText())); 
       currentYear.setText("Your Curret Year is :- " + year); 
       yourYear.setText("Your Birth Year is :- "+ dob); 

      int a = year-dob; 

      finalAns.setText("Your Age is :- " + a); 

      inAge.setText(""); 

      } 



     } 
    }); 

上記コードはボタンクリックです。いくつかの解決策を提供してください

私はまた、editText1.getText()。toString.trim()。lenght()== 0を条件に入れてみましたが、それもうまくいかず、アプリがクラッシュしました。

答えて

1

calcAge.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       if (yourEdittext.getText().toString().equals("")) { 
        yourEdittext.setError(getString("filed can't be empty")); 
        yourEdittext.requestFocus(); 
        Toast.makeText(getApplicationContext(), "Please Provide Some Input", Toast.LENGTH_SHORT).show(); 
       } 


      } 
     }); 
+0

ありがとうございます。 –

+0

@MustakimKhalifaよろしくお願いします。 upvoteを忘れずに答えの1つを受け入れたものとしてマークしてください。そうすれば、あなたの質問にもっと答えが必要ないことは他人にはっきりと分かります。 –

0

使用このボタンクリックのリスナーでこれを試してみてください。

String dob = yourEditText.getText().toString(); 

そして、このようにそれを確認してください。

if (TextUtils.isEmpty(dob)) { 
      //show toast 
     } 
0

あなたはこのように検証を行う必要がある。

doneDetails.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         if(validationDetails()){ 
         //If get all data do Action 
         }else{ 
          // Toast.makeText(getApplicationContext(),"Field Missing",Toast.LENGTH_SHORT).show(); 
         } 
        } 

これは検証一部の方法である:

private boolean validationDetails() { 

        if (userNameET.getText().toString().isEmpty()) { 
         userNameET.setError("Enter Patient Name"); 
         return false; 
        } 
        if (ageET.getText().toString().isEmpty()) { 
         ageET.setError("Enter Age "); 
         return false; 
        } 
        if (gender.getSelectedItem().toString().isEmpty()) { 
         Toast.makeText(getApplicationContext(),"Select Gender",Toast.LENGTH_SHORT).show(); 
         return false; 
        } 
        return true; 
       } 
0

は、あなたのボタンのクリックでこれを試してください:ボタンクリックで

if (yourEditText.getText().toString().equal("")) { 
      Toast.makeText(getApplicationContext(), "Please Give Some Input", Toast.LENGTH_SHORT).show(); 
    } 
0

をDOBが今年よりも大きい場合には、最初にチェックされています。これは正しくありません。まず、dobがnullか空であるかどうかを確認します。年より大きいかどうかを確認してください

If (dob == null && dob.isEmplty){ 
    Toast.makeText(getApplicationContext(), "Please Provide Some Input", Toast.LENGTH_SHORT).show(); 
} else if(dob > year){ 
    Toast.makeText(getApplicationContext(), "Provide valid Input", Toast.LENGTH_SHORT).show(); 
} else { 
//do what ever you want 
} 
関連する問題