Переключиться с макета main.xml на другой макет - PullRequest
8 голосов
/ 10 мая 2011

У меня есть основной вопрос по Android здесь:

У меня есть макет main.xml, который загружается при запуске приложения. На этой странице есть кнопка меню, которую я хотел бы (при нажатии) отправить пользователю в другой макет (about.xml).

Я сомневаюсь, что это правильно. При нажатии эта команда запускается:

setContentView(R.layout.about);

И, похоже, работает, я вижу страницу about.xml, но не могу вернуться к макету main.xml, когда нажимаю кнопку BACK на моем устройстве Android, приложение просто закрывается.

Я сомневаюсь, что это правильный способ навигации между файлами макета XML. Не могли бы вы помочь или указать мне страницу, которая объясняет это для начинающего программиста, такого как я?

Большое спасибо,

Pat

EDIT: Спасибо за все ответы, которые вы помогли указать мне в правильном направлении. Чтобы помочь будущим программистам-новичкам, таким как я, понять Activity, вот замечательное простое учебное пособие, которое я нашел в Интернете и которое разработало его для нас, начинающих!

http://www.warriorpoint.com/blog/2009/05/24/android-how-to-switch-between-activities/

Ответы [ 4 ]

7 голосов
/ 10 мая 2011

Есть ли у вас отдельная активность для вашей страницы about? Обычно для каждого экрана вы создаете новое действие. Когда вы переходите на новый экран, новое действие будет накладываться поверх первого экрана. Когда вы нажмете Назад на устройстве Android, всплывет предыдущее действие.

1 голос
/ 12 мая 2011

У вашего основного действия для содержимого view установлено значение main.xml, а у вас есть другое about.xml, которое должно быть настроено на другое действие, чтобы вы могли переходить от одного занятия к другому с помощью Intents. Я предлагаю вам пройти через сайт разработчика, где вы можете найти информацию об использовании действий и намерений.

1 голос
/ 10 мая 2011

Что вы хотите сделать, это создать новую Активность для каждого отдельного экрана.Вы создаете каждое новое задание как новый класс и используете Intents для перемещения между ними.Таким образом, вы будете использовать setContentView(); только один раз для каждого занятия. Сайт Android полон огромных ресурсов.

0 голосов
/ 10 мая 2011

При переключении между макетами, подобными этим, вам нужно управлять поведением кнопок «назад»

, вот пример псевдокода для использования в основном классе вашей деятельности

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if((keyCode == KeyEvent.KEYCODE_BACK) && (secondary_layout_is_displayed))
    {
        displayPrimaryLayout();
        // return true to let the system know we consumed the back button press
        return true;
    }

    // return the default value
    return super.onKeyDown(keyCode, event);
}
...