Similar presentations:
Несколько активностей. Лекция №5
1.
Лекция №5.по курсу «Несколько активностей»
Москва 2021
2.
Множественные активностиДля большинства приложений одной активности недостаточно.
Как строить приложения с несколькими активностями и как организовать
взаимодействие между активностями с использованием интентов.
Использовать интенты за границами приложения и как выполнять
действия при помощи активностей других приложений на вашем
устройстве.
3.
Множественные активности4.
Приложение заметкиДве активности. Одна для ввода текста, другая для его отображения
5.
Приложение заметкиДве активности. Одна для ввода текста, другая для его отображения
6.
ИнтентыПри запуске приложения будет выполняться наша первая активность,
CreateMessageActivity. Следующий шаг — заставить CreateMessageActivity вызывать
ReceiveMessageActivity, когда пользователь щелкает на кнопке Send Message.
Чтобы запустить одну активность из другой, воспользуйтесь интентом. Интент можно
рассматривать как своего рода «намерение выполнить некую операцию». Это
разновидность сообщений, позволяющая связать разнородные объекты (например,
активности) на стадии выполнения. Если одна активность хочет запустить другую, она
отправляет для этого интент системе Android. Android запускает вторую активность и
передает ей интент.
Intent intent = new Intent(this, Target.class);
Первый параметр сообщает Android, от какого объекта поступил интент; для
обозначения текущей активности используется ключевое слово this. Во втором
параметре передается имя класса активности, которая должна получить интент.
После того как интент будет создан, он передается Android следующим вызовом:
startActivity(intent)
7.
Интенты8.
Интенты9.
Интенты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
17.
Фильтр интентов18.
Пример классовpublic class Person {
private String firstName;
private String lastName;
private int age;
public Person()
{
int – примитивный тип,
String – класс
Integer – ссылочный тип,
класс оболочка
Автоупаковка
}
public Person(String firstName,
String lastName, int age) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
18
19.
Переопределение методовObject – родительский класс для всех классов
19
20.
Статические методыНе требуется создавать объект
package box;
public class MyMath {
public static int square(int number)
{
return number*number;
}
}
Синтаксис:
<Имя класса>.<Имя метода>
MyMath.square(40);
При объявлении запретить изменять ее значение – final
Поля, которые не имеют конкретного отношения к объектам
20
21.
Перегруженные методы, значения поумолчанию, перегрузка операторов
Синтаксический сахар (англ. 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() позволяют определить начинается ли строка с
определенной подстроки, а метод 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() возвращает подстроку, начиная с определенного индекса
до конца или до определенного индекса:
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 – не потокобезопасный, но работает быстрее в однопоточных
приложениях
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.
Коллекции ArrayListArrayList<String> people = new ArrayList<String>();
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, TreeSetHashSet<String> names2 = new HashSet<String>();
names2.add("Ivan");
names2.add("Petr");
Нет метода get, порядок не определен
TreeSet храняться в отсортированном виде.
29.
КоллекцииНаписать программу в Android Studio, которая отображает форму, где
пользователь вводит количество покупок, есть кнопка «далее»,
«завершить заказ». При нажатии на кнопку «далее» вводится следующее
значение, при нажатии на кнопку «завершить заказ» показывается форма
со всеми введенными значениями.