Update task to TextView protocol
This commit is contained in:
parent
e9f21ae2ba
commit
6af06fa8c9
47
README.md
47
README.md
@ -7,23 +7,22 @@
|
|||||||
Основные требования к приложению:
|
Основные требования к приложению:
|
||||||
|
|
||||||
- Не изменяйте место и название файла `MainActivity` (но редактирование содержимого - можно и нужно)
|
- Не изменяйте место и название файла `MainActivity` (но редактирование содержимого - можно и нужно)
|
||||||
- Для отслеживания используйте текстовые подсказки системного класса `Toast`
|
- Последовательность состояния жизненого цикла приложения должна выводиться в *TextView* (`@id/protocol`)
|
||||||
|
- Каждое состояние жизненного цикла выводится в отдельной строке
|
||||||
- Значения текстовых подсказок **должны быть определены** в строковых ресурсах `string.xml`
|
- Значения текстовых подсказок **должны быть определены** в строковых ресурсах `string.xml`
|
||||||
- Длительность показа задается константой `Toast.LENGTH_LONG`
|
|
||||||
- В качестве объекта `Context` используйте запускаемую активити
|
|
||||||
- Текстовые подсказки должны быть корректно выводится при смене конфигурации приложения (например, поворот экрана)
|
- Текстовые подсказки должны быть корректно выводится при смене конфигурации приложения (например, поворот экрана)
|
||||||
|
|
||||||
Название строковых ресурсов и их значения приведено в таблице 1.
|
Название строковых ресурсов и их значения приведено в таблице 1.
|
||||||
|
|
||||||
| № | Отслеживаемый метод | Строковый ресурс | Значение ресурса |
|
| № | Отслеживаемый метод | Строковый ресурс | Значение ресурса |
|
||||||
| :-: | :-----------------: | :--------------: | :--------------: |
|
| :-: |:-------------------:| :--------------: | :--------------: |
|
||||||
| 1 | `onCreate` | `ncreate` | Activity CREATED |
|
| 1 | `onCreate` | `ncreate` | Activity CREATED |
|
||||||
| 2 | `onStart` | `nstart` | Activity STARTED |
|
| 2 | `onStart` | `nstart` | Activity STARTED |
|
||||||
| 3 | `onResume` | `nresume` | Activity RESUMED |
|
| 3 | `onResume` | `nresume` | Activity RESUMED |
|
||||||
| 4 | … | `npause` | Activity PAUSED |
|
| 4 | `onPase` | `npause` | Activity PAUSED |
|
||||||
| 5 | … | `nstop` | Activity STOPPED |
|
| 5 | `onStop` | `nstop` | Activity STOPPED |
|
||||||
| 6 | … | `nrestart` | Activity RESTARTED |
|
| 6 | `onRestart` | `nrestart` | Activity RESTARTED |
|
||||||
| 7 | `onDestroy` | `ndestroy` | Activity DESTROYED |
|
| 7 | `onDestroy` | `ndestroy` | Activity DESTROYED |
|
||||||
|
|
||||||
*Таблица 1. Настройки всплывающих подсказок*
|
*Таблица 1. Настройки всплывающих подсказок*
|
||||||
|
|
||||||
@ -35,34 +34,18 @@
|
|||||||
|
|
||||||
*Ожидаемый результат:*
|
*Ожидаемый результат:*
|
||||||
|
|
||||||
Последовательно показаны текстовые подсказки:
|
*TextView* (`@id/protocol`) содержит три строки:
|
||||||
|
|
||||||
1. `onCreate`
|
Activity CREATED
|
||||||
2. `onStart`
|
|
||||||
3. `onResume`
|
|
||||||
|
|
||||||
**2. Поворот экрана**
|
Activity STARTED
|
||||||
|
|
||||||
*Входные данные:* приложение уже запущено. Выполняется поворот экрана.
|
Activity RESUMED
|
||||||
|
|
||||||
*Ожидаемый результат:*
|
|
||||||
|
|
||||||
Последовательно показаны текстовые подсказки:
|
|
||||||
|
|
||||||
1. `onDestroy`
|
|
||||||
2. `onCreate`
|
|
||||||
3. `onStart`
|
|
||||||
4. `onResume`
|
|
||||||
|
|
||||||
![screenshot](/doc/screenshot.png)
|
|
||||||
|
|
||||||
*Пример интефрейса*
|
|
||||||
|
|
||||||
|
![Пример оформления](/doc/screenshot.png)
|
||||||
|
|
||||||
| № | Название теста | Баллы | Описание |
|
| № | Название теста | Баллы | Описание |
|
||||||
| :-: | :-----------------: | :--------------: | :-------------- |
|
| :-: | :-----------------: | :--------------: | :-------------- |
|
||||||
| 1 | checkPortait | 2 | Проверка последовательности Toast при запуске активности |
|
| 1 | checkPortait | 2 | Проверка последовательности Toast при запуске активности |
|
||||||
| 2 | checkLandscape | 4 | Проверка обработки поворотов экрана |
|
| 2 | checkLandscape | 4 | Проверка обработки поворотов экрана |
|
||||||
| 3 | checkStringRes | 1 | Проверка наличия строковых ресурсов |
|
|
||||||
|
|
||||||
*Таблица 2. Критерии оценивания и тесты*
|
*Таблица 2. Критерии оценивания и тесты*
|
@ -1,20 +1,42 @@
|
|||||||
package ru.myitschool.work;
|
package ru.myitschool.work;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.text.method.ScrollingMovementMethod;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.annotation.StringRes;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import ru.myitschool.work.databinding.ActivityMainBinding;
|
import ru.myitschool.work.databinding.ActivityMainBinding;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
public class MainActivity extends AppCompatActivity {
|
||||||
|
|
||||||
|
private ActivityMainBinding binding;
|
||||||
|
private ArrayList<String> protocol = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
|
void logLifecycleState(@StringRes int resourceId) {
|
||||||
|
String text = getString(resourceId);
|
||||||
|
protocol.add(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
void showLog() {
|
||||||
|
StringBuilder s = new StringBuilder();
|
||||||
|
for (String state : protocol) {
|
||||||
|
s.append(state).append("\n");
|
||||||
|
}
|
||||||
|
binding.protocol.setText(s.toString());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
final ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater());
|
binding = ActivityMainBinding.inflate(getLayoutInflater());
|
||||||
setContentView(binding.getRoot());
|
setContentView(binding.getRoot());
|
||||||
Toast.makeText(this, R.string.ncreate, Toast.LENGTH_LONG).show();
|
binding.protocol.setMovementMethod(new ScrollingMovementMethod());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Добавьте недостающие методы здесь
|
// Добавьте недостающие методы здесь
|
||||||
|
@ -1,13 +1,22 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<FrameLayout
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/main"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent"
|
||||||
|
tools:context=".MainActivity">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:id="@+id/protocol"
|
||||||
android:layout_height="wrap_content"
|
android:layout_width="0dp"
|
||||||
android:layout_gravity="center"
|
android:layout_height="0dp"
|
||||||
android:text="Hello World!"/>
|
android:scrollbars="vertical"
|
||||||
|
android:text="Протокол\n"
|
||||||
</FrameLayout>
|
android:textAlignment="center"
|
||||||
|
android:textSize="34sp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
Binary file not shown.
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 64 KiB |
Loading…
x
Reference in New Issue
Block a user