Merged with old project
All checks were successful
Merge core/template-android-project to this repo / merge-if-needed (push) Successful in 15s
All checks were successful
Merge core/template-android-project to this repo / merge-if-needed (push) Successful in 15s
This commit is contained in:
parent
3e6fe310e0
commit
c2fd98e505
36
README.md
Normal file
36
README.md
Normal file
@ -0,0 +1,36 @@
|
||||
[![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>
|
@ -11,6 +11,16 @@
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/Theme.Default"
|
||||
tools:targetApi="31" />
|
||||
tools:targetApi="31">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
|
||||
</manifest>
|
20
app/src/main/java/ru/myitschool/work/MainActivity.java
Normal file
20
app/src/main/java/ru/myitschool/work/MainActivity.java
Normal file
@ -0,0 +1,20 @@
|
||||
package ru.myitschool.work;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import ru.myitschool.work.databinding.ActivityMainBinding;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
private ActivityMainBinding binding;
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
binding = ActivityMainBinding.inflate(getLayoutInflater());
|
||||
setContentView(binding.getRoot());
|
||||
}
|
||||
}
|
10
app/src/main/res/layout/activity_main.xml
Normal file
10
app/src/main/res/layout/activity_main.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout 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_height="match_parent"
|
||||
tools:context=".MainActivity">
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -1,3 +1,3 @@
|
||||
<resources>
|
||||
<string name="app_name">Work</string>
|
||||
<string name="app_name">New Words</string>
|
||||
</resources>
|
Loading…
x
Reference in New Issue
Block a user