Как манипулировать кнопкой назад? - PullRequest
0 голосов
/ 13 сентября 2018

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

Ответы [ 4 ]

0 голосов
/ 13 сентября 2018

Попробуйте следующий код ..

@Override
    public void onBackPressed() {             
        Log.d(TAG, "onBackPressed: GoTo NextActivity");
        Intent intent = new Intent(getApplicationContext(),NextActivity.class); // Replace the NextActivity.class with the Activity you wish to open..
        startActivity(intent);
    }
0 голосов
/ 13 сентября 2018

В своей деятельности вам нужно использовать onBackPressed ()

@Override
public void onBackPressed() {

    //You'll put your code here, in my example below, i check if the user is sure

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Are you sure you want to cancel?")
            .setCancelable(false)
            .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    YourActivity.this.finish();
                }
            })
            .setNegativeButton("No", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            });
    AlertDialog alert = builder.create();
    alert.show();
}
0 голосов
/ 13 сентября 2018

Будьте осторожны с обратной навигацией на Android. Есть несколько правил, которые нужно соблюдать: https://developer.android.com/training/implementing-navigation/temporal https://developer.android.com/training/design-navigation/ancestral-temporal

0 голосов
/ 13 сентября 2018

Просто переопределите метод onBackPressed в своей деятельности, например:

@Override
public void onBackPressed() {
/** Write your code here that you want to execute on Backpress**/        
}

Не используйте super.onBackPressed() в onBackPressed, потому что он будет вызван методом родительской активности onBackPressed и уничтожит текущую активность.

...