2016-08-12 10 views
0

電子メールとパスワードがヌルのときに[OK]ボタンが付いたAlertDialogボックスが作成されました。しかし、AlertDialogボックスはすぐに消えます。 OKボタンをクリックしてこのloginactivity.javaにとどまると消えてしまいます。どうやってやるの?私を助けてください。ここでalaertダイアログボックスがすぐに消えた

は、この行を削除し、実行活動

​​

を起動するダイアログを表示した後、自分のコードLoginactivity.java

mEmailSignInButton.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      my_username = mEmailView.getText().toString(); 
      my_password = mPasswordView.getText().toString(); 
      // Log.v("Username", "Username is " + my_username); 

      savePreferences("Login onClick storedName", mEmailView.getText().toString()); 
      savePreferences("Login onClick storedPass", mPasswordView.getText().toString()); 

      if (my_username.isEmpty() || my_password.isEmpty()) { 

       Log.v("Login button onClick", "Login onClick 2 input are empty "); 


       AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
         context); 

       // set title 
       alertDialogBuilder.setTitle("Your Title"); 

       // set dialog message 
       alertDialogBuilder 
         .setMessage("Click yes to exit!") 
         .setCancelable(false) 
         .setPositiveButton("Ok",new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog,int id) { 
           // if this button is clicked, close 
           // current activity 
           LoginActivity.this.finish(); 
          } 
         }) 
         .setNegativeButton("No",new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog,int id) { 
           // if this button is clicked, just close 
           // the dialog box and do nothing 
           dialog.cancel(); 
          } 
         }); 

       // create alert dialog 
       AlertDialog alertDialog = alertDialogBuilder.create(); 

       // show it 
       alertDialog.show(); 

       Intent i = new Intent(getApplicationContext(), LoginActivity.class); 
       startActivity(i); 

      }else{ 

       Log.v("Login button onClick", "Login onClick 2 input are not empty "); 

       Bundle b = new Bundle(); 
       Intent intent= new Intent(LoginActivity.this, MainActivity.class); 
       b.putString("Username", my_username); 
       b.putString("Password", my_password); 
       b.putString("flag", "add"); 
       intent.putExtras(b); 
       startActivity(intent); 

       // Intent i = new Intent(getApplicationContext(), LoginActivity.class); 
       // startActivity(i); 
      } 
+1

ダイアログを表示した後、アクティビティを開始します。ボタンをクリックしてそのアクティビティを起動する場合は、起動コードを移動します。 –

答えて

0

コードでは、まずビルダーを使用してダイアログを作成し、表示します。そのとおり。しかし、なぜ、活動を開始する再び?それをする必要はありません!これはまた、警告ダイアログが消える理由です。新しいアクティビティが開始されると、アラートダイアログは自動的に閉じられます。

だからあなただけのこれらの行を削除する必要がありますダイアログを表示

が ​​

現在の活動を残しません。

0
LoginActivity.this.finish() you have to replace this line with "dialog.dismiss()" 
0

そのため、警告ダイアログがOKでstartActivityCodeを置くか、コードの下のような警告ダイアログのキャンセルボタンが消えダイアログショーの後のコードを起動している:

mEmailSignInButton.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      my_username = mEmailView.getText().toString(); 
      my_password = mPasswordView.getText().toString(); 
      // Log.v("Username", "Username is " + my_username); 

      savePreferences("Login onClick storedName", mEmailView.getText().toString()); 
      savePreferences("Login onClick storedPass", mPasswordView.getText().toString()); 

      if (my_username.isEmpty() || my_password.isEmpty()) { 

       Log.v("Login button onClick", "Login onClick 2 input are empty "); 


       AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
         context); 

       // set title 
       alertDialogBuilder.setTitle("Your Title"); 

       // set dialog message 
       alertDialogBuilder 
         .setMessage("Click yes to exit!") 
         .setCancelable(false) 
         .setPositiveButton("Ok",new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog,int id) { 
           // if this button is clicked, close 
           // current activity 
           LoginActivity.this.finish(); 
          } 
         }) 
         .setNegativeButton("No",new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog,int id) { 
           // if this button is clicked, just close 
           // the dialog box and do nothing 

       Intent i = new Intent(getApplicationContext(), LoginActivity.class); 
       startActivity(i); 
           dialog.cancel(); 

          } 
         }); 

       // create alert dialog 
       AlertDialog alertDialog = alertDialogBuilder.create(); 

       // show it 
       alertDialog.show(); 


      }else{ 

       Log.v("Login button onClick", "Login onClick 2 input are not empty "); 

       Bundle b = new Bundle(); 
       Intent intent= new Intent(LoginActivity.this, MainActivity.class); 
       b.putString("Username", my_username); 
       b.putString("Password", my_password); 
       b.putString("flag", "add"); 
       intent.putExtras(b); 
       startActivity(intent); 

       // Intent i = new Intent(getApplicationContext(), LoginActivity.class); 
       // startActivity(i); 
      } 
0

ため、このコードの:

Intent i = new Intent(getApplicationContext(), LoginActivity.class); 
       startActivity(i); 
関連する問題