Как вернуться со второго экрана на первый экран - PullRequest
1 голос
/ 24 февраля 2012

У меня, наверное, простой вопрос, как выбирать макеты, но это немного сложно для меня. Во-первых, у меня есть класс Main, где onCreate (setContentView(R.layout.main);), а затем я вызываю другой класс с командой:

setContentView(secondClass);

В этом классе я рисую с помощью Canvas, и это прекрасно работает, а также я создаю кнопку, чтобы вернуться в первый «класс» (R.layout.main), но я не знаю, как это сделать.

Теперь моя программа - это базовый графический поток. В первом классе вы набираете свою функцию, а во втором - рисуете ее. Но как вернуться в первый класс, чтобы набрать другую функцию. Эта кнопка «назад» или стрелка, которая есть на каждом телефоне Android, вышлите меня из программы, а не верните на вставку.

Во втором классе я не могу создать метод onCreate, но я также попробовал следующее, и они не работали:

Intent abc = new Intent("bla.bla.bla.FIRSTCLASS");

startActivity(abc);

и

Intent abc = new Intent(SecondClass.this,FirstClass.class);

startActivity(greNaPrvoOkno);

Я знаю, что мой английский плохой. Надеюсь, вы понимаете.

Спасибо.

Ответы [ 5 ]

3 голосов
/ 24 февраля 2012

Если вы хотите использовать пользовательское представление (как я понял, вы расширяете класс View), вы можете сделать это следующим образом;

Считайте, что вы показываете второй класс из своей основной деятельности, как это;

setContentView(new SecondClass(getApplicationContext(), MainActivity.this));

А ты Второй класс это (предположим);

// I am using onClickListener to go back to main view. You do whatever you like.
public class SecondClass extends View implements OnClickListener {

    // This is needed to switch back to the parent activity
    private Activity mParentActivity = null;

    public SecondClass(Context context, Activity parentActivity) {
        super(context);

        mParentActivity = parentActivity;   
        setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // Set the Main view back here.
        mParentActivity.setContentView(R.layout.main);
    }

}

Отказ от ответственности: этот код сделает то, о чем вы просили, но может вызвать другие проблемы.

В соответствии с рекомендациями @Mudassir, вы должны использовать два разных действия для двух экранов. Это даст вам лучший контроль, и ваш код будет легко понять и поддерживать.

1 голос
/ 24 февраля 2012

В событии Onclick кнопки вы должны написать finish ();это все ..

0 голосов
/ 24 февраля 2012

Когда я использовал несколько намерений в своем приложении для Android, я создал новое действие через:

Intent abc = new Intent(this, SecondClass.class);
startActivity(abc);

Когда кнопка нажата в вашем втором классе, я бы тогда либо позвонил finish(); вкласса, или создайте новое намерение, например, так:

Intent abc = new Intent(this, FirstClass.class);
startActivity(abc);

Однако этот метод имеет недостаток, заключающийся в том, что, если пользователь хочет использовать кнопку «Назад», ему, возможно, придется прокручивать множество уровней действий.1008 *

0 голосов
/ 24 февраля 2012

Оба ваших занятия - это занятия да? Если это так, то во втором упражнении вы просто позвоните finish(), и ваше занятие закроется, и вы снова откроете свое первое занятие.

0 голосов
/ 24 февраля 2012

Вы должны создать другое действие для вашего второго класса, а не просто установить основное действие в новое представление setContentView (secondClass).

Для более легкой модификации, вы можете сначала попытаться установить представление обратно в setContentView (R.layout.main).

Вам все еще нужно настроить виджеты (например, TextView) на нем, когда вы установите его обратно.


Вам не нужно снова начинать работу, чтобы вернуться назад.

Просто вызовите finish () во втором упражнении, чтобы завершить текущее действие, и вернитесь назад:

например. Когда пользователь нажимает кнопку «Назад» во втором упражнении

mButtonBack.setOnClickListener(new Button.OnClickListener() 
{       
   public void onClick(View v) 
   {                            
      finish();
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...