2
0
new-words/README.md
Skripkin Andrei c2fd98e505
All checks were successful
Merge core/template-android-project to this repo / merge-if-needed (push) Successful in 15s
Merged with old project
2024-06-04 13:33:13 +03:00

36 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[![Android Studio version](https://img.shields.io/endpoint?url=https%3A%2F%2Fsicampus.ru%2Fgitea%2Fcore%2Fdocs%2Fraw%2Fbranch%2Fmain%2Fandroid-studio-label.json)](https://sicampus.ru/gitea/core/docs/src/branch/main/how-upload-project.md)
# Практическая работа. New Words
В данном практическом задании предлагается дописать существующий проект Android приложения, а именно реализовать возможность сохранения списка английских слов, введённых пользователем, в текстовый файл.
1. В разметке приложения должны присутствовать элементы, указанные в [табл. 1](#table1). Все элементы разметки должны быть полностью видны и в случае открытой экранной клавиатуры.
2. Слова вводятся в поле с `id/words_input`, разделяются запятой (с пробелом или без пробела). Необходимо сохранить все введённые слова в файл **`words.txt`** в том же порядке.
3. Каждое слово в файле **`words.txt`** должно находиться на отдельной строке; в файле не должно быть слов, которые не были введены в *EditText*.
4. Создание файла происходит по нажатии на *View* (или любого наследника, например, *Button*) c `id/write_internal` или `id/write_external`.
5. Если было совершено нажатие на *View* c `id/write_internal`, то файл создаётся во внутреннем хранилище. Если было совершено нажатие на *View* c `id/write_external`, то файл создается во внешнем хранилище.
6. На экране должна быть расположена *TextView* с `id/file_content`, в которую по нажатию на любую кнопку рассчитывается количество введённых пользователем слов.
7. Файл должен размещаться в папке с номером текущего месяца (нумерация с 1), которая находится в папке приложения во внутреннем (внешнем) хранилище устройства.
Для получения хранилища используйте функцию:
```java
// Вызов внутри Activity
void foo() {
getExternalFilesDir(null); // Получение пути до внешнего хранилища
getFilesDir().getPath(); // Получение пути до внутреннего хранилища
}
```
Например, при использовании внешнего хранилища путь к файлу может выглядеть так:
```text
/storage/emulated/0/Android/ru.myitschool.lab23/files/3/words.txt
```
| № | тип View | идентификатор |
| - | :------: | ------------- |
| 1 | *View* | `write_internal` |
| 2 | *View* | `write_external` |
| 3 | *TextView* | `file_content` |
| 4 | *EditText* | `words_input` |
<a id="table1">*Таблица 1: Элементы пользовательского интерфейса*</a>