Ссылка на макет действия из другого действия - PullRequest
0 голосов
/ 01 февраля 2012

Я занимаюсь разработкой веб-приложений уже несколько лет, и просто решил начать свой путь с разработки под Android, используя эту книгу: Начало разработки приложений для Android из wrox.

В какой-то момент книга объясняет, как получить результат от намерения (под заголовком «Возвращение результатов из намерения»).

Это шаги:

  1. В книге описано, как изменить файл макета main.xml, добавив несколько новых элементов управления.
  2. В книге описывается, как изменить действие, которое будет вторым (Упражнение 2), в нем говорится, что это занятие должно ссылаться на макет другого занятия, вызывая ​Button btn = (Button) findViewById(R.id.btn_OK); так как btn_OK был определен в макете основного действия (а не в Activity2, это в main.xml), метод возвращает ноль.

Официальная документация описывает:

public View findViewById (int id)
Since: API Level 1

Находит представление, идентифицированное атрибутом id из XML, обработанного в onCreate(Bundle).

Значит, я что-то здесь упускаю или эта книга неверна?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2016

В Activity1

public static Button btn;
void onCreate(...) {
   btn = (Button) findViewById(R.id.btn_OK);
}

В Activity2:

​Button btn = Activity1.btn;

Примечание: когда вы используете Intent для перехода к Activity2, не вызывайте action1.finish (), так как это уничтожитБТН;

0 голосов
/ 19 июня 2012

Использование findViewById () в поиске Activity в XML-файле макета, который использовался в setContentView () в onCreate ().

Если в двух действиях используются разные файлы layout.xml, кнопка внутри этих файлов может иметь одинаковый идентификатор и не будет перепутана (с помощью findViewById ()).

...