Несколько активностей. Лекция №5

Содержание

Слайд 2

Множественные активности Для большинства приложений одной активности недостаточно. Как строить приложения

Множественные активности

Для большинства приложений одной активности недостаточно.
Как строить приложения с несколькими

активностями и как организовать взаимодействие между активностями с использованием интентов.
Использовать интенты за границами приложения и как выполнять действия при помощи активностей других приложений на вашем устройстве.
Слайд 3

Множественные активности

Множественные активности

Слайд 4

Приложение заметки Две активности. Одна для ввода текста, другая для его отображения

Приложение заметки

Две активности. Одна для ввода текста, другая для его отображения

Слайд 5

Приложение заметки Две активности. Одна для ввода текста, другая для его отображения

Приложение заметки

Две активности. Одна для ввода текста, другая для его отображения

Слайд 6

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

Интенты

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

— заставить CreateMessageActivity вызывать ReceiveMessageActivity, когда пользователь щелкает на кнопке Send Message.
Чтобы запустить одну активность из другой, воспользуйтесь интентом. Интент можно рассматривать как своего рода «намерение выполнить некую операцию». Это разновидность сообщений, позволяющая связать разнородные объекты (например, активности) на стадии выполнения. Если одна активность хочет запустить другую, она отправляет для этого интент системе Android. Android запускает вторую активность и передает ей интент.
Intent intent = new Intent(this, Target.class);
Первый параметр сообщает Android, от какого объекта поступил интент; для обозначения текущей активности используется ключевое слово this. Во втором параметре передается имя класса активности, которая должна получить интент.
После того как интент будет создан, он передается Android следующим вызовом:
startActivity(intent)
Слайд 7

Интенты

Интенты

Слайд 8

Интенты

Интенты

Слайд 9

Интенты getIntent() возвращает интент, запустивший активность; из полученного интента можно прочитать

Интенты

getIntent() возвращает интент, запустивший активность; из полученного интента можно прочитать любую

информацию, отправленную вместе с ним.
Например, если вы знаете, что интент включает строковое значение с именем “message”, используйте следующий вызов:
Intent intent = getIntent();
String string = intent.getStringExtra("message");
int intNum = intent.getIntExtra("name", default_value);
может использоваться для получения значения int с именем name. Параметр default_value указывает, какое значение int должно использоваться по умолчанию.
Слайд 10

Неявные интенты

Неявные интенты

Слайд 11

Неявные интенты

Неявные интенты

Слайд 12

Неявные интенты

Неявные интенты

Слайд 13

Неявные интенты

Неявные интенты

Слайд 14

Неявные интенты

Неявные интенты

Слайд 15

Неявные интенты

Неявные интенты

Слайд 16

Неявные интенты Заставить пользователя каждый раз предлагать возможность выбора приложения createChooserIntent

Неявные интенты

Заставить пользователя каждый раз предлагать возможность выбора приложения
createChooserIntent

Слайд 17

Фильтр интентов

Фильтр интентов

Слайд 18

Пример классов public class Person { private String firstName; private String

Пример классов

public class Person {
private String firstName;
private String lastName;

private int age;
public Person()
{
}
public Person(String firstName, String lastName, int age) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}

int – примитивный тип,
String – класс
Integer – ссылочный тип, класс оболочка
Автоупаковка

Слайд 19

Переопределение методов Object – родительский класс для всех классов

Переопределение методов

Object – родительский класс для всех классов

Слайд 20

Статические методы Не требуется создавать объект package box; public class MyMath

Статические методы

Не требуется создавать объект
package box;
public class MyMath {
public static

int square(int number)
{
return number*number;
}
}
Синтаксис:
<Имя класса>.<Имя метода>
MyMath.square(40);
При объявлении запретить изменять ее значение – final
Поля, которые не имеют конкретного отношения к объектам
Слайд 21

Перегруженные методы, значения по умолчанию, перегрузка операторов Синтаксический сахар (англ. syntactic

Перегруженные методы, значения по умолчанию, перегрузка операторов

Синтаксический сахар (англ. syntactic sugar)

в языке программирования — это синтаксические возможности, применение которых не влияет на поведение программы, но делает использование языка более удобным для человека. Переопределение операторов только для интуитивно понятных объектов, например, матриц, не для сотрудников.
int a = Integer.parseInt(s);
Java передает все по значению.
Слайд 22

Работа со строками Извлечение символов и подстрок Для извлечения символов по

Работа со строками

Извлечение символов и подстрок
Для извлечения символов по индексу в

классе String определен метод char charAt(int index). Он принимает индекс, по которому надо получить символов, и возвращает извлеченный символ:
String str = "Java";
char c = str.charAt(2);
System.out.println(c); // v
Сравнение строк
String str1 = "Hello";
String str2 = "hello";
System.out.println(str1.equals(str2)); // false
System.out.println(str1.equalsIgnoreCase(str2)); // true
Поиск в строке
Метод indexOf() находит индекс первого вхождения подстроки в строку, а метод lastIndexOf() - индекс последнего вхождения. Если подстрока не будет найдена, то оба метода возвращают -1:
String str = "Hello world";
int index1 = str.indexOf('l'); // 2
int index2 = str.indexOf("wo"); //6
int index3 = str.lastIndexOf('l'); //9
Слайд 23

Работа со строками Метод startsWith() позволяют определить начинается ли строка с

Работа со строками

Метод startsWith() позволяют определить начинается ли строка с определенной

подстроки, а метод endsWith() позволяет определить заканчивается строка на определенную подстроку:
String str = "myfile.exe";
boolean start = str.startsWith("my"); //true
boolean end = str.endsWith("exe"); //true
Замена в строке
Метод replace() позволяет заменить в строке одну последовательность символов на другую:
String str = "Hello world";
String replStr1 = str.replace('l', 'd'); // Heddo wordd
String replStr2 = str.replace("Hello", "Bye"); // Bye world
Обрезка строки
Метод trim() позволяет удалить начальные и конечные пробелы:
String str = " hello world ";
str = str.trim(); // hello world
Слайд 24

Работа со строками Метод substring() возвращает подстроку, начиная с определенного индекса

Работа со строками

Метод substring() возвращает подстроку, начиная с определенного индекса до

конца или до определенного индекса:
String str = "Hello world";
String substr1 = str.substring(6); // world
String substr2 = str.substring(3,5); //lo
Изменение регистра
Метод toLowerCase() переводит все символы строки в нижний регистр, а метод toUpperCase() - в верхний:
String str = "Hello World";
System.out.println(str.toLowerCase()); // hello world
System.out.println(str.toUpperCase()); // HELLO WORLD
Split
Метод split() позволяет разбить строку на подстроки по определенному разделителю. Разделитель - какой-нибудь символ или набор символов передается в качестве параметра в метод. Например, разобьем текст на отдельные слова:
String text = "FIFA will never regret it";
String[] words = text.split(" ");
for(String word : words){
System.out.println(word);
}
Слайд 25

Работа со строками StringBuffer, StringBuilder StringBuffer – синхронизированный и потокобезопасный StringBuilder

Работа со строками

StringBuffer, StringBuilder
StringBuffer – синхронизированный и потокобезопасный
StringBuilder – не

потокобезопасный, но работает быстрее в однопоточных приложениях
String str = “Java”;
StringBuffer strBuffer = new StringBuffer(strBuffer);
String s1 = " Hello Java. I like Java "; String[] words = s1.split("\\s|,|!|\\."); for(String word:words) { System.out.println(word); }
Слайд 26

Работа со строками

Работа со строками

Слайд 27

Коллекции ArrayList ArrayList people = new ArrayList (); Scanner keyboard =

Коллекции ArrayList

ArrayList people = new ArrayList();
Scanner keyboard = new

Scanner(System.in);
for (int i=0; i<4; i++)
people.add(keyboard.nextLine());
people.remove(0); // удаляет элемент с индексом 0
people.add(2,"Shamil");
for (String str:people)
System.out.println(str);
Слайд 28

Коллекции HashSet, TreeSet HashSet names2 = new HashSet (); names2.add("Ivan"); names2.add("Petr");

Коллекции HashSet, TreeSet

HashSet names2 = new HashSet();
names2.add("Ivan");
names2.add("Petr");
Нет метода

get, порядок не определен
TreeSet храняться в отсортированном виде.