diff --git a/README.md b/README.md new file mode 100644 index 0000000..c24c479 --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# Практическая работа. Tricky Hexahedron + +В данном практическом задании предлагается дописать существующий проект-заготовку Android приложения для вычисления суммы длин сторон, длины диагонали, площади полной поверхности и объема прямоугольного параллелепипеда. + +Измените код существующих классов и интерфейсов, дополните разметку, ресурсы и манифест, чтобы приложение отвечало следущим требованиям: + +1. Интерфейс приложения должен содержать элементы, перечисленные в табл. 1. Все указанные элементы интерфейса должны быть видны полностью даже при открытой виртуальной клавиатуре. +2. Элементы *EditText* должны поддерживать ввод чисел с плавающей точкой. Элемент *EditText* с большим номером по порядку располагается ниже *EditText* с меньшим номером. +3. Ограничения на вводимые значения указаны в табл. 1. Точность проверки: 1e-5. +4. Элемент `@id/spinner` позволяет выбрать одну из четырех опций для проведения расчетов в порядке, определенном в данном задании. +5. При нажатии на элемент `@id/calculate` в текстовое поле `@id/solution` устанавливается текст с результатом проведенных расчетов в соответствии с выбранной в `@id/spinner` опцией. Гарантируется, что в момент нажатия все три *EditText* имеют непустой текст. +6. При нажатии на *TextView* с `@id/solution` текущее значение копируется в буфер обмена. + +| № | View type | id | Максимальное значение | +| :-: | :------: | -------------- | --------------------- | +| 0 | *TextView* | `side_a_label` | | +| 1 | *EditText* | `side_a` | $10^{12}$ | +| 2 | *TextView* | `side_b_label` | | +| 3 | *EditText* | `side_b` | $10^{12}$ | +| 4 | *TextView* | `side_c_label` | | +| 5 | *EditText* | `side_c` | $10^{12}$ | +| 6 | *Spinner* | `spinner` | | +| 7 | *View* | `calculate` | | +| 8 | *TextView* | `solution` | | + +*Таблица 1. Элементы пользовательского интерфейса* + +| № | Ресурс | Допустимое значение | +| :-: | ------ | ------------------- | +| 1 | `@string/side_a_text` | a | +| 2 | `@string/side_b_text` | b | +| 3 | `@string/side_c_text` | c | + +*Таблица 2. strings.xml* \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9ee5c40..d406a8f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,6 +11,16 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.Default" - tools:targetApi="31" /> + tools:targetApi="31"> + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/MainActivity.java b/app/src/main/java/ru/myitschool/work/MainActivity.java new file mode 100644 index 0000000..2e73db9 --- /dev/null +++ b/app/src/main/java/ru/myitschool/work/MainActivity.java @@ -0,0 +1,21 @@ +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()); + + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..9affce0 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 96034ac..bdd093f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,3 @@ - Work + Прямоугольный параллелепипед \ No newline at end of file