Update task to TextView protocol
This commit is contained in:
		
							
								
								
									
										39
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								README.md
									
									
									
									
									
								
							| @@ -7,22 +7,21 @@ | |||||||
| Основные требования к приложению: | Основные требования к приложению: | ||||||
|  |  | ||||||
| - Не изменяйте место и название файла `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` |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| *Пример интефрейса* |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| | №   | Название теста | Баллы | Описание | | | №   | Название теста | Баллы | Описание | | ||||||
| | :-: | :-----------------: | :--------------: | :-------------- | | | :-: | :-----------------: | :--------------: | :-------------- | | ||||||
| | 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 | 
		Reference in New Issue
	
	Block a user