Загрузка данных


Прочитал задание полностью — теперь всё точно по документу. Даю готовый проект целиком.

**Важное по заданию, что учёл:**
- Обязателен TextView с ФИО и группой на экране 1
- Пример текста для экрана 2 — я взял пример музея прямо из задания
- Требование "не Form1/button3" — все id осмысленные, CamelCase
- Требование "масштабируемая компоновка" — использую `match_parent`/`wrap_content`, никаких фиксированных `dp` под размеры экрана
- Требование "заголовок окна не по умолчанию" — прописал `android:label` для каждой Activity в манифесте
- Требование "кнопка Назад между окнами" — реализовано явными кнопками (уже в задании), плюс системная кнопка Back работает сама по себе через `startActivity`
- Название приложения должно быть осмысленным — назвал `PraktikaMuseum` (замени под свою тему практики)

---

## AndroidManifest.xml (только суть — activity-блоки)

```xml
<activity
    android:name=".MainActivity"
    android:label="Ввод данных о практике"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

<activity
    android:name=".PracticeInfoActivity"
    android:label="Место прохождения практики" />

<activity
    android:name=".FeedbackActivity"
    android:label="Обратная связь" />
```

---

## activity_main.xml (Экран 1)

```xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <TextView
        android:id="@+id/tvActivityTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Активность 1"
        android:textSize="20sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/tvStudentInfo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:text="Иванов Иван Иванович, группа ИС-31" />

    <EditText
        android:id="@+id/etUserInput"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:hint="Введите текст" />

    <Button
        android:id="@+id/btnClearText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:text="Стереть" />

    <Button
        android:id="@+id/btnGoToPractice"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="Перейти на 2 экран" />

    <Button
        android:id="@+id/btnGoToFeedback"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:text="Обратная связь" />

</LinearLayout>
```

## MainActivity.java

```java
package ru.dgtt.praktikamuseum;

import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;

/**
 * Стартовый экран приложения.
 * Позволяет ввести текст, очистить его и перейти на экран с информацией
 * о практике или на экран обратной связи.
 */
public class MainActivity extends AppCompatActivity {

    private EditText etUserInput;
    private Button btnClearText, btnGoToPractice, btnGoToFeedback;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        etUserInput = findViewById(R.id.etUserInput);
        btnClearText = findViewById(R.id.btnClearText);
        btnGoToPractice = findViewById(R.id.btnGoToPractice);
        btnGoToFeedback = findViewById(R.id.btnGoToFeedback);

        btnClearText.setOnClickListener(v -> etUserInput.setText(""));

        btnGoToPractice.setOnClickListener(v -> {
            Intent intent = new Intent(MainActivity.this, PracticeInfoActivity.class);
            intent.putExtra("KEY_TEXT", etUserInput.getText().toString());
            startActivity(intent);
        });

        btnGoToFeedback.setOnClickListener(v -> {
            Intent intent = new Intent(MainActivity.this, FeedbackActivity.class);
            startActivity(intent);
        });
    }
}
```

---

## activity_practice_info.xml (Экран 2)

```xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <TextView
        android:id="@+id/tvActivityTitle2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Активность 2"
        android:textSize="20sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/tvPracticeInfo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="МБУК «Добрянский историко-краеведческий музей»\nНаш адрес: ул. Жуковского, 23\nГрафик работы: вт-сб 10:00–17:00; вс 11:00–17:00\nНаш сайт: dobrmuseum.ru\nКонтакты: +7 (34265) 3-78-00" />

    <TextView
        android:id="@+id/tvUserInputResult"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp" />

    <Button
        android:id="@+id/btnBackToMain"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="Вернуться на главный экран" />

</LinearLayout>
```

## PracticeInfoActivity.java

```java
package ru.dgtt.praktikamuseum;

import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

/**
 * Экран с информацией о месте прохождения практики.
 * Отображает текст, переданный с главного экрана.
 */
public class PracticeInfoActivity extends AppCompatActivity {

    private TextView tvUserInputResult;
    private Button btnBackToMain;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_practice_info);

        tvUserInputResult = findViewById(R.id.tvUserInputResult);
        btnBackToMain = findViewById(R.id.btnBackToMain);

        // Получаем текст, переданный с 1 экрана
        String passedText = getIntent().getStringExtra("KEY_TEXT");
        tvUserInputResult.setText(passedText);

        btnBackToMain.setOnClickListener(v -> {
            startActivity(new Intent(PracticeInfoActivity.this, MainActivity.class));
            finish();
        });
    }
}
```

---

## activity_feedback.xml (Экран 3)

```xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <TextView
        android:id="@+id/tvActivityTitle3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Обратная связь с пользователем"
        android:textSize="20sp"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/etFeedback"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:hint="Введите ваш отзыв" />

    <Button
        android:id="@+id/btnSendFeedback"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="Отправить" />

    <Button
        android:id="@+id/btnBackToMain2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:text="Перейти на 1 экран" />

</LinearLayout>
```

## FeedbackActivity.java

```java
package ru.dgtt.praktikamuseum;

import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

/**
 * Экран обратной связи. Позволяет пользователю оставить отзыв
 * и вернуться на главный экран.
 */
public class FeedbackActivity extends AppCompatActivity {

    private EditText etFeedback;
    private Button btnSendFeedback, btnBackToMain2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_feedback);

        etFeedback = findViewById(R.id.etFeedback);
        btnSendFeedback = findViewById(R.id.btnSendFeedback);
        btnBackToMain2 = findViewById(R.id.btnBackToMain2);

        btnSendFeedback.setOnClickListener(v ->
                Toast.makeText(this, "Спасибо за отзыв!", Toast.LENGTH_SHORT).show());

        btnBackToMain2.setOnClickListener(v -> {
            startActivity(new Intent(FeedbackActivity.this, MainActivity.class));
            finish();
        });
    }
}
```

---

Замени `ru.dgtt.praktikamuseum` на свой реальный пакет (посмотри в текущих файлах проекта) и ФИО/группу на свои. Всё остальное соответствует пунктам задания дословно.