ЭЛЕМЕНТЫ ЭКРАНА.pptx
- Количество слайдов: 61
ЭЛЕМЕНТЫ ЭКРАНА. СОЗДАНИЕ И ВЫЗОВ ACTIVITY
ОБРАЩЕНИЕ К ЭЛЕМЕНТУ УПРАВЛЕНИЯ ПО ID Метод find. View. By. Id() Для id определен формат: id = @+id/name
Пример 1 <Relative. Layout xmlns: android="http: //schemas. android. com/apk/res/android" xmlns: tools="http: //schemas. android. com/tools" android: layout_width="match_parent" android: layout_height="match_parent" android: padding. Bottom="@dimen/activity_vertical_margin" android: padding. Left="@dimen/activity_horizontal_margin" android: padding. Right="@dimen/activity_horizontal_margin" android: padding. Top="@dimen/activity_vertical_margin" tools: context="ru. startandroid. develop. test_id. Main. Activity" > <Text. View android: layout_width="wrap_content" android: layout_height="wrap_content" android: text="@string/hello_world" android: id="@+id/Test_id. Text" /> </Relative. Layout>
Фрагмент файла R. java public static final class id { public static final int Test_id. Text=0 x 7 f 080000; public static final int action_settings=0 x 7 f 080001; }
Идентификация созданного элемента protected void on. Create(Bundle saved. Instance. State) { super. on. Create(saved. Instance. State); set. Content. View(R. layout. main); Text. View Test_id. Text = (Text. View) find. View. By. Id(R. id. Test_id. Text); }
Секция import в Main. Activity. java import android. app. Activity; import android. os. Bundle; import android. view. Menu. Item; import android. view. View; import android. widget. Text. View;
ИЛЛЮСТРАЦИЯ К ПРИМЕРУ 1
ПРИМЕР 2. Фрагмент Main. Activity. java protected void on. Create(Bundle saved. Instance. State) { super. on. Create(saved. Instance. State); set. Content. View(R. layout. main); Text. View Test_id. Text = (Text. View) find. View. By. Id(R. id. Test_id. Text); Test_id. Text. View. set. Text("Это новый текст, определенный в Main. Activity!"); }
ИЛЛЮСТРАЦИЯ К ПРИМЕРУ 2
Пример 3. Файл разметки <Relative. Layout xmlns: android="http: //schemas. android. com/apk/res/android" xmlns: tools="http: //schemas. android. com/tools" android: layout_width="match_parent" android: layout_height="match_parent" android: padding. Bottom="@dimen/activity_vertical_margin" android: padding. Left="@dimen/activity_horizontal_margin" android: padding. Right="@dimen/activity_horizontal_margin" android: padding. Top="@dimen/activity_vertical_margin" tools: context="ru. startandroid. develop. test_id. Main. Activity" > <Text. View android: layout_width="wrap_content" android: layout_height="wrap_content" android: text="@string/hello_world" android: id="@+id/Test_id. Text" /> <Button android: id="@+id/Test_id. Button" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_align. Left="@id/Test_id. Text" android: layout_below="@id/Test_id. Text" android: layout_margin. Left="30 dp" /> </Relative. Layout>
Фрагмент Main. Activity. java к примеру 3 protected void on. Create(Bundle saved. Instance. State) { super. on. Create(saved. Instance. State); set. Content. View(R. layout. main); Text. View Test_id. Text. View = (Text. View) find. View. By. Id(R. id. Test_id. Text); Test_id. Text. View. set. Text("Это новый текст, определенный в Main. Activity!"); Button Test_id. Button. View = (Button) find. View. By. Id(R. id. Test_id. Button); Test_id. Button. View. set. Text("Моя кнопка"); }
ИЛЛЮСТРАЦИЯ К ПРИМЕРУ 3
ОБРАБОТЧИКИ СОБЫТИЙ
Пример 4 (вариант А) <Linear. Layout xmlns: android="http: //schemas. android. com/apk/res/android" android: layout_width="match_parent" android: layout_height="match_parent" android: orientation="horizontal"> <Linear. Layout android: id="@+id/linearlayout 1" android: layout_width="match_parent" android: layout_height="match_parent" android: layout_margin="30 dp" android: orientation="vertical" > <Text. View android: id="@+id/tv. Out" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_gravity="center_horizontal" android: text="Text. View" > </Text. View> <Button android: id="@+id/btn. Ok" android: layout_width="100 dp" android: layout_height="wrap_content" android: layout_gravity="center_horizontal" android: text="Ok"> </Button> <Button android: id="@+id/btn. Cancel" android: layout_width="100 dp" android: layout_height="wrap_content" android: layout_gravity="center_horizontal" android: text="Cancel"> </Button> </Linear. Layout>
ИЛЛЮСТРАЦИЯ К ПРИМЕРУ 4
Фрагмент Main. Activity. java к примеру 4 public class Main. Activity extends Activity { Text. View tv. Out. View; Button btn. Ok. View; Button btn. Cancel; @Override protected void on. Create(Bundle saved. Instance. State) { super. on. Create(saved. Instance. State); set. Content. View(R. layout. main); tv. Out. View = (Text. View) find. View. By. Id(R. id. tv. Out); btn. Ok. View = (Button) find. View. By. Id(R. id. btn. Ok); btn. Cancel = (Button) find. View. By. Id(R. id. btn. Cancel); // Создание обработчика нажатия: On. Click. Listener ocl. Btn. Ok = new On. Click. Listener(){ @Override public void on. Click(View v) { }; }
Обновление секции import для примера 4
Описание метода on. Click() для примера 4 On. Click. Listener ocl. Btn. Ok = new On. Click. Listener(){ @Override public void on. Click(View v) { tv. Out. View. set. Text("Нажата кнопка Ok"); };
Дальнейшая модификация кода для примера 4 @Override protected void on. Create(Bundle saved. Instance. State) { super. on. Create(saved. Instance. State); set. Content. View(R. layout. main); tv. Out. View = (Text. View) find. View. By. Id(R. id. tv. Out); btn. Ok. View = (Button) find. View. By. Id(R. id. btn. Ok); btn. Cancel = (Button) find. View. By. Id(R. id. btn. Cancel); // Создание обработчика нажатия: On. Click. Listener ocl. Btn. Ok = new On. Click. Listener(){ @Override public void on. Click(View v) { tv. Out. View. set. Text("Нажата кнопка Ok"); }; // Присвоение обработчика кнопке OK: btn. Ok. View. set. On. Click. Listener(ocl. Btn. Ok); }
Иллюстрация 1 для примера 4
Пример 5 (вариант В) public class Main. Activity extends Activity { Text. View tv. Out. View; Button btn. Ok. View; Button btn. Cancel; private On. Click. Listener ocl. Btn; @Override protected void on. Create(Bundle saved. Instance. State) { super. on. Create(saved. Instance. State); set. Content. View(R. layout. main); tv. Out. View = (Text. View) find. View. By. Id(R. id. tv. Out); btn. Ok. View = (Button) find. View. By. Id(R. id. btn. Ok); btn. Cancel = (Button) find. View. By. Id(R. id. btn. Cancel); ocl. Btn = new On. Click. Listener() { @Override public void on. Click(View v) { // по id определить, какая кнопка нажата: switch(v. get. Id()) { case R. id. btn. Ok: // нажата кнопка OK tv. Out. View. set. Text("Нажата кнопка OK"); break; case R. id. btn. Cancel: // нажата кнопка Cancel tv. Out. View. set. Text("Нажата кнопка Cancel"); break; }} }; btn. Ok. View. set. On. Click. Listener(ocl. Btn); btn. Cancel. set. On. Click. Listener(ocl. Btn); } }
Пример 5 (вариант С) public class Main. Activity extends Activity implements On. Click. Listener { } import android. app. Activity; import android. os. Bundle; import android. view. Menu. Item; import android. view. View. On. Click. Listener; import android. widget. Button; import android. widget. Text. View;
Исправление ошибок (к примеру 5) The type Main. Activity must implement the inherited abstract method View. On. Click. Listener. on. Click(View)
Реализация метода on. Click() для примера 5 @Override public void on. Click(View v) { // по id определить, какая кнопка нажата: switch(v. get. Id()) { case R. id. btn. Ok: // нажата кнопка OK tv. Out. View. set. Text("Нажата кнопка OK"); break; case R. id. btn. Cancel: // нажата кнопка Cancel tv. Out. View. set. Text("Нажата кнопка Cancel"); break; } }
on. Create() для примера 5 protected void on. Create(Bundle saved. Instance. State) { super. on. Create(saved. Instance. State); set. Content. View(R. layout. main); // идентификация View-элементов tv. Out. View = (Text. View) find. View. By. Id(R. id. tv. Out); btn. Ok. View = (Button) find. View. By. Id(R. id. btn. Ok); btn. Cancel = (Button) find. View. By. Id(R. id. btn. Cancel); btn. Ok. View. set. On. Click. Listener(this); btn. Cancel. set. On. Click. Listener(this); }
Пример 6 (вариант D) <Linear. Layout xmlns: android="http: //schemas. android. com/apk/res/android" android: layout_width="match_parent" android: layout_height="match_parent" android: orientation="vertical"> <Text. View android: id="@+id/tv. Out" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_gravity="center_horizontal" android: layout_margin. Top="30 dp" android: text="Text. View" > </Text. View> <Button android: id="@+id/btn. Start" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_gravity="center_horizontal" android: on. Click="on. Click. Start" android: text="Start"> </Button> </Linear. Layout>
on. Click. Start() для примера 6 public void on. Click. Start(View v){ tv. Out. set. Text("Нажата кнопка Start"); } public void on. Click. Start(View v){ Text. View tv. Out; tv. Out = (Text. View) find. View. By. Id(R. id. tv. Out); tv. Out. set. Text("Нажата кнопка Start"); }
Иллюстрация для примера 6
ИСПОЛЬЗОВАНИЕ РЕСУРСОВ
РЕСУРСЫ: • ресурсы цветов, изменяемых в зависимости от состояния View (хранятся в res/color/ и доступны из класса R. color); • изображения (хранятся в res/drawable/ и доступны из класса R. drawable); • разметки для интерфейса приложения (хранятся в res/layout/ и доступны из класса R. layout); • содержимое меню приложения (хранятся в res/menu и доступны из класса R. menu); • строки, строковые массивы (хранятся в res/values/ и доступны из классов R. string, R. array); • …
Элементы файла strings. xml • app_name ; • hello_world ; • action_settings ;
strings. xml <? xml version="1. 0" encoding="utf-8"? > <resources> <string name="app_name">Test_on. Click</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> </resources>
Пример 7 <Linear. Layout xmlns: android="http: //schemas. android. com/apk/res/android" android: layout_width="match_parent" android: layout_height="match_parent" android: orientation="vertical"> <Linear. Layout android: id="@+id/linearlayout 1" android: layout_width="match_parent" android: layout_height="match_parent" android: layout_margin="20 dp" android: layout_weight="1" android: orientation="vertical" > <Text. View android: id="@+id/text_gr_41" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_gravity="center_horizontal" android: layout_margin. Top="30 dp" android: text="Text. View" > </Text. View> <Button android: id="@+id/btn_41" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_gravity="center_horizontal" android: layout_margin. Top="30 dp" android: text="Button"> </Button> </Linear. Layout> <Linear. Layout > … </Linear. Layout>
Иллюстрация 1 для примера 7
Создание файла ресурсов (шаг 1)
Создание файла ресурсов (шаг 2)
Создание файла ресурсов (шаг 3)
Создание ресурсов string для примера 7
Создание ресурсов color для примера 7
Файл ресурсов для примера 7 <? xml version="1. 0" encoding="utf-8"? > <resources xmlns: android="http: //schemas. android. com/apk/res/android"> <string android: layout_width="wrap_content" android: layout_height="wrap_content" android: id="@+id/string 1" name="txt_41 b">Приветствие для студентов группы 41 </string> <string android: layout_width="wrap_content" android: id="@+id/string 1" android: layout_height="wrap_content" name="txt_41 a">Приветствуем вас, студенты группы 41! </string> <string android: id="@+id/string 1" android: layout_width="wrap_content" android: layout_height="wrap_content" name="txt_42 a">Приветствуем вас, студенты группы 42! </string> <string android: layout_width="wrap_content" android: layout_height="wrap_content" android: id="@+id/string 1" name="txt_42 b">Приветствие для студентов группы 42 </string> <color android: id="@+id/color 1" android: layout_height="wrap_content" android: layout_width="wrap_content" name="Color_top">#335547 </color> <color android: id="@+id/color 1" android: layout_width="wrap_content" android: layout_height="wrap_content" name="Color_bottom">#338855 </color> </resources>
Настройка элементов управления на использование созданных ресурсов (верхняя половина экрана, шаг 1)
Настройка элементов управления на использование созданных ресурсов (верхняя половина экрана, шаг 2)
Иллюстрация 2 для примера 7
Настройка элементов управления на использование созданных ресурсов (нижняя половина экрана) protected void on. Create(Bundle saved. Instance. State) { super. on. Create(saved. Instance. State); set. Content. View(R. layout. main); Linear. Layout linearlayout 2 = (Linear. Layout) find. View. By. Id(R. id. linearlayout 2); Text. View text_gr_42 = (Text. View) find. View. By. Id(R. id. text_gr_42); Button btn_42 = (Button) find. View. By. Id(R. id. btn_42); linearlayout 2. set. Background. Resource(R. color. Color. Bottom); text_gr_42. set. Text(R. string. txt_42 a); btn_42. set. Text(R. string. txt_42 b); } }
Иллюстрация 3 для примера 7
СОЗДАНИЕ И ВЫЗОВ ВТОРОЙ ACTIVITY
Пример 8. Файл разметки <Linear. Layout xmlns: android="http: //schemas. android. com/apk/res/android" xmlns: tools="http: //schemas. android. com/tools" android: layout_width="fill_parent" android: layout_height="fill_parent" android: orientation="vertical" > <Text. View android: layout_margin. Top="20 dp" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_gravity="center" android: text="@string/Text_Time_Table" > </Text. View> <Button android: id="@+id/btn_41" android: layout_margin. Top="20 dp" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_gravity="center" android: text="@string/str 4_41"> </Button> <Button android: id="@+id/btn_42" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_gravity="center" android: text="@string/str 4_42"> </Button> </Linear. Layout>
Файл ресурсов для примера 8 <? xml version="1. 0" encoding="utf-8"? > <resources xmlns: android="http: //schemas. android. com/apk/res/android"> <string name="app_name">Another_Screen</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> <string android: layout_height="wrap_content" android: id="@+id/str 4_41" android: layout_width="wrap_content" name="str 4_41">Расписание для 4 -41</string> <string android: layout_height="wrap_content" android: layout_width="wrap_content" android: id="@+id/str 4_42" name="str 4_42">Расписание для 4 -42</string> <string android: layout_height="wrap_content" android: id="@+id/text_time_table" android: layout_width="wrap_content" name="Text_Time_Table">Здесь вы можете посмотреть свое расписание</string> </resources>
Фрагмент Main. Activity. java для примера 8 public class Main. Activity extends Action. Bar. Activity implements On. Click. Listener{ Button btn 4_41; Button btn 4_42; @Override protected void on. Create(Bundle saved. Instance. State) { super. on. Create(saved. Instance. State); set. Content. View(R. layout. main); btn 4_41 = (Button) find. View. By. Id(R. id. btn_41); btn 4_42 = (Button) find. View. By. Id(R. id. btn_42); btn 4_41. set. On. Click. Listener(this); btn 4_42. set. On. Click. Listener(this); } … }
Создание второй Activity шаги: 1. создать класс; 2. прописать созданную Activity в манифесте.
Создание класса второй Activity для примера 8
сlass Second. Activity для примера 8 package ru. startandroid. develop. another_screen; import android. app. Activity; public class Second. Activity extends Activity { }
Создание файла разметки для Second. Activity для примера 8
Создание файла ресурсов для Second. Activity для примера 8 <? xml version="1. 0" encoding="utf-8"? > <resources xmlns: android="http: //schemas. android. com/apk/res/android" > <string name="app_name">Another_Screen</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> <string android: layout_height= "wrap_content" android: id="@+id/str 4_41" android: layout_width= "wrap_content" name="str 4_41">Расписание для 4 -41</string> <string android: layout_height="wrap_content" android: layout_width= "wrap_content" android: id="@+id/str 4_42" name="str 4_42">Расписание для 4 -42</string> <string android: layout_height="wrap_content" android: id="@+id/text_time_table" android: layout_width= "wrap_content" name="Text_Time_Table">Здесь вы можете посмотреть свое расписание</string> <string android: id="@+id/text_41" android: layout_width= "wrap_content" android: layout_height= "wrap_content" name="text_41">11. 40 Разработка мобильных приложений, лекция; n 14. 00 x БЖД; лаб. ; xx Разработка ИС на 1 С, лаб. ; n 15. 50 x Разработка ИС на 1 С, лаб <string android: id="@+id/text_42" android: layout_width= "wrap_content" android: layout_height= "wrap_content" name="text_42">08. 00 x Тестирование ПО, лаб. ; n 09. 50 x ТПР, семинар; n 11. 40 Разработка мобильных приложений, лекция </string> </resources>
Создание файла разметки для Second. Activity для примера 8 <? xml version="1. 0" encoding="utf-8"? > <Linear. Layout xmlns: android="http: //schemas. android. com/apk/res/android" android: layout_width="match_parent" android: layout_height="match_parent" android: orientation="vertical" > <Text. View android: id="@+id/text_41" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_weight="1" android: text="@string/text_41" > </Text. View> </Linear. Layout>
set. Content. View() для Second. Activity для примера 8 public class Second. Activity extends Activity { @Override protected void on. Create(Bundle saved. Instance. State) { super. on. Create(saved. Instance. State); set. Content. View(R. layout. second_scr); } }
Добавление Second. Activity в манифест для примера 8, шаг 1
Добавление Second. Activity в манифест для примера 8, шаг 2
Добавление Second. Activity в манифест для примера 8, шаг 3
Вызов Second. Activity public void on. Click(View v) { switch(v. get. Id()) { case R. id. btn_41: // TODO Auto-generated method stub Intent intent = new Intent(this, Second. Activity. class); start. Activity(intent); break; default: break; } }
Иллюстрация для примера 8
ЭЛЕМЕНТЫ ЭКРАНА.pptx