Android: реализация кнопки возврата из класса

Хорошо, вот и моя проблема. Я работаю над приложением для Android и одновременно изучаю Android, поэтому в большинстве случаев получаю ошибки. Обычно я могу исправить их после небольшого исследования, но я застреваю в этом вопросе.

Я пытаюсь сделать кнопку возврата для каждого действия в моем приложении, поэтому я подумал о создании класса «BackButton», чтобы я мог создавать его каждый раз, когда захочу. Вот мой код BackButton:

import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.app.Activity;

    public class BackButton extends Activity implements View.OnClickListener{

        public static Button BackButton;

        // Defining the button
        public BackButton() {

            BackButton = (Button) findViewById(R.id.bBack);

            BackButton.setOnClickListener(this);

        }

        //To get the Button
        public static Button getBackButton() {
            return BackButton;
        }


        // OnClickListener
        public void onClick(View v) {

                try {
                    Class MainActivityClass = Class.forName("eu.lafarga.treballderecerca.MainActivity");
                    Intent MainActivityIntent = new Intent(BackButton.this, MainActivityClass); 
                    startActivity(MainActivityIntent);
                } catch (ClassNotFoundException e) {
                    e.printStackTrace();
                }finally {
                    // Save the things we've done. 
                }

        }

    }

Итак, как мне реализовать это в любой деятельности? Я что-то не так делаю? (Конечно, я смеюсь)


person Ignasi Sánchez    schedule 04.09.2013    source источник
comment
Хорошо, не переопределяйте кнопку «Назад», если вам все еще нужно, тогда создайте экземпляр объекта класса, который вы создали внутри, с помощью метода обратного нажатия.   -  person Skynet    schedule 04.09.2013
comment
если вам просто нужна функция кнопки «Назад», почему бы вам не использовать панель действий vogella.com/ article / AndroidActionBar / article.html   -  person Mohit    schedule 04.09.2013
comment
вам не нужна кнопка возврата, у вас есть аппаратная кнопка возврата, при нажатии которой вы возвращаетесь к предыдущему действию. Для навигации используйте панель действий и панель навигации   -  person Raghunandan    schedule 04.09.2013


Ответы (3)


Лично я бы посоветовал этого не делать. Я думаю, что переопределение кнопки «Назад» в каждом Activity было бы безопаснее, гибче и так же просто, если не проще. Скорее всего, вам не всегда захочется возвращаться к MainActivity по мере роста вашего приложения, потому что вполне вероятно, что это не будет ожидаемым действием для пользователей, когда они нажмут кнопку «Назад». Переопределите кнопку "Назад" в Activities, которая в ней нуждается, и запустите свой код.

    @Overrride
    public void onBackPressed(View v) {
     // save data first

      Intent MainActivityIntent = new Intent(CurrentActivityName.this, MainActivityClass); 
      startActivity(MainActivityIntent);
      super.onBackPressed();
}

Вы также можете использовать такие флаги, как FLAG_ACTIVITY_CLEAR_TOP, если хотите удалить все Activities между текущим и целевым Activity (здесь MainActivity), вызвав setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)

person codeMagic    schedule 04.09.2013

Есть более простой способ прослушивания backButton.

// Called when the activity has detected the user's press of the back key.
 onBackPressed()

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

http://developer.android.com/reference/android/app/Activity.html

person JavaDM    schedule 04.09.2013

Есть несколько способов заблокировать кнопку возврата.

Путем переопределения onKeyDown или onBackPressed вашего Activity.

Пожалуйста, перейдите по следующей ссылке на вопрос, чтобы получить подробное описание и решение, данное в ответе.

Ссылка 1

Ссылка 2 < / strong>

person RPB    schedule 04.09.2013