2016-04-04 10 views
-1

私はSaripaar Library 2.0をアクティビティ内で正常に使用しました。ダイアログ内のEditTextを検証する方法。Android Saripaar validation insideダイアログ

ユーザー名、パスワード(編集テキスト)、ログイン、パスワードを忘れた(ボタン)のログイン画面があります。私がForgotPasswordをクリックすると。私が検証することができますどのようにダイアログボックスが表示され、それが電子メールをお願いします(のEditText)

public class LoginActivity extends AppCompatActivity implements Validator.ValidationListener, View.OnClickListener { 

     @NotEmpty 
     EditText username; 

     @NotEmpty 
     EditText password; 

     private Button login; 
     private Button forgotPassword; 

     private Validator mValidator; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setTheme(android.R.style.Theme_DeviceDefault_Light_NoActionBar_Fullscreen); 
      setContentView(R.layout.activity_login); 
      init(); 

      mValidator = new Validator(this); 
      mValidator.setValidationListener(this); 

      forgotPassword.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        final Dialog dialog = new Dialog(LoginActivity.this); 
        dialog.setContentView(R.layout.activity_forgotpassword); 
        dialog.getWindow().setBackgroundDrawableResource(R.color.blue); 
        dialog.getWindow().setTitleColor(getResources().getColor(R.color.white)); 
        dialog.setTitle("Forgot Password?"); 
        EditText forgotpasswordrequest = (EditText) dialog.findViewById(R.id.forgotpasswordrequest); 
        Button request = (Button) dialog.findViewById(R.id.request); 
        request.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 

         } 
        }); 
        dialog.show(); 
       } 
      }); 
     login.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        mValidator.validate(); 
       } 
      }); 
     @Override 
     public void onValidationSucceeded() { 
      startActivity(new Intent(LoginActivity.this, MenuActivity.class)); 
      overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); 
     } 

     @Override 
     public void onValidationFailed(List<ValidationError> errors) { 
      for (ValidationError error : errors) { 
       View view = error.getView(); 
       String message = error.getCollatedErrorMessage(this); 
       if (view instanceof EditText) { 
        ((EditText) view).setError(message); 
       } else { 
        Toast.makeText(this, message, Toast.LENGTH_LONG).show(); 
       } 
      } 
     } 

のEditText私は

@NotEmpty 
    EditText forgotpasswordrequest; 

ログイン・アクティビティーでのEditText forgotpasswordrequest初期化する場合は

forgotpasswordrequest実行時エラー:java.lang.IllegalStateException: 'EditText forgotpasswordrequest'がnullです。

私はダイアログ内forgotpasswordrequestのEditTextを初期化する場合は、エラーが個別にダイアログ内のEditTextを検証する方法、

ローカル変数には適用されません@NotEmpty

のですか?

答えて

-1

次の行を追加して、もう一度お試しください、

EditText forgotpasswordrequest =(EditText)dialog.findViewById(R.id.forgotpasswordrequest); 

String forgotpasswordreq = forgotpasswordrequest.getText().toString(); 
+0

私はAndroidのSaripaarライブラリを使用しています – Venky

関連する問題