2014-03-31 7 views
3

Я разработал приложение, работающее успешно, но есть два действия: сначала заставка, а вторая - веб-просмотр. Теперь проблема заключается в том, что при нажатии кнопки «Назад» она закрывает приложение и выходит, однако кнопка «назад», «вперед» и «обновление» находится в приложении для внутренней навигации. Итак, как показать, что вы уверены, чтобы выйти из диалогового окна или не дать пользователю отключить обратный ключ.Как предотвратить выход пользователя из приложения при нажатии кнопки «Назад»

ответ

0

Override onBackPressed в вашей деятельности

@Override 
    public void onBackPressed() { 

     super.onBackPressed(); 

       AlertDialog.Builder alertDialog = new AlertDialog.Builder(SettingsActivity.this); 

       // Setting Dialog Title 
       alertDialog.setTitle("Signout your app"); 


       alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog,int which) { 

           dialog.cancel(); 
        } 
       }); 


       alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 



        } 
       }); 


       alertDialog.show(); 



    } 
0

Попробуйте этот путь

public class YourActivity extends Activity { 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

    } 

    @Override 
    public void onBackPressed() { 

     AlertDialog.Builder builder = new AlertDialog.Builder(this); 

     int imageResource = android.R.drawable.ic_dialog_alert; 
     Drawable image = getResources().getDrawable(imageResource); 

     builder.setTitle("Exit").setMessage("want to exit?").setIcon(image).setCancelable(false).setPositiveButton("yes", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       finish(); 
      } 
     }).setNegativeButton("no", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int id) { 
      } 
     }); 

     AlertDialog alert = builder.create(); 
     alert.setCancelable(false); 
     alert.show(); 

    } 

} 
9

Что-то вроде этого, перекрывая onBackPressed() метод Activity класса:

@Override 
public void onBackPressed() { 
    new AlertDialog.Builder(this) 
      .setMessage("Are you sure you want to exit?") 
      .setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        MyActivity.super.onBackPressed(); 
       } 
      }) 
      .setNegativeButton("No", null) 
      .show(); 


} 
0

Просто делать,

@Override 
public void onBackPressed() { 

    // super.onBackPressed(); 

      AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); 

      // Setting Dialog Title 
      alertDialog.setTitle("Exit alert"); 
      alertDialog.setMessage("Do You want Exit??"); 
      alertDialog .setIcon(R.drawable.galleryalart); 


      alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog,int which) { 

          dialog.cancel(); 
       } 
      }); 


      alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 

      [youractivity].super.onBackPressed(); 


       } 
      }); 


      alertDialog.show(); 



} 
+0

Спасибо всем, чтобы ответить. –

Смежные вопросы