@Cgfdgfd

Как в android studio сделать чтобы пользователь мог добавлять выбранный рецепт в закладки?

И по нажатию кнопки переходил в раздел закладки(создам 3 activity) , где мог смотреть все свои сохраненные рецепты .Так как я новичок ,буду премного благодарен если скажете как сделать с обьяснением .
activity_main.xml
<?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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="118dp"
        android:layout_height="20dp"
        android:text="Главное меню"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.295" />

    <Button
        android:id="@+id/button"
        android:layout_width="159dp"
        android:layout_height="96dp"
        android:onClick="onClickStart"
        android:text="Блюда"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView"
        app:layout_constraintVertical_bias="0.822" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Закладки(сделать)"
        app:layout_constraintBottom_toTopOf="@+id/button"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.497"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView"
        app:layout_constraintVertical_bias="0.873" />

</androidx.constraintlayout.widget.ConstraintLayout>

activity_second.xml
<?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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#121111">

    <ScrollView
        android:id="@+id/ScrollView1"
        android:layout_width="409dp"
        android:layout_height="729dp"
        tools:layout_editor_absoluteX="1dp"
        tools:layout_editor_absoluteY="1dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <Button
                android:id="@+id/button2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:onClick="toastMe"
                android:text="Button" />

            <TextView
                android:id="@+id/textView2"
                android:layout_width="match_parent"
                android:layout_height="1224dp"
                android:textColor="@color/white" />

        </LinearLayout>
    </ScrollView>

</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.kt
package com.example.randomfoodgenerator


import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View


class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
    fun onClickStart(view: View){
        val intent = Intent(this, SecondActivity ::class.java)
        startActivity(intent)
    }

    }

SecondActivity.kt
package com.example.randomfoodgenerator


import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.ScrollView
import android.widget.TextView
import kotlin.random.Random.Default.nextInt

class SecondActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_second)
    }
    fun toastMe(view: View) {

        val i1 = "Жареная курица на сковороде:Продукты\n" +
                "Курица — 1 шт\n" +
                "иди бедрышки - 1 кг\n" +
                "Чеснок — 3-4 зубчика\n" +
                "Черный молотый перец — по вкусу\n" +
                "Соль — по вкусу\n" +
                "Растительное масло — 30-50 г\n"+
                "Подготовить ингредиенты.\n"+
                "Как приготовить жареную курицу на сковороде:Курицу тщательно помыть и разрезать на кусочки. Осушить. Посолить и поперчить. Оставить на 10 минут для маринования.\n"+
                "Разогреть сковороду. Налить растительное масло. Выложить курицу на сковороду с раскаленным растительным маслом и жарить на умеренном огне в течение 15 минут, затем куски курицы перевернуть и жарить еще в течение 15 минут.\n"+
                "Почистить и натереть на мелкой терке чеснок. Выложить его на курицу. Накрыть сковороду крышкой, уменьшить огонь до самого маленького и жарить в течение 5 минут.\n"+
                "После чего перевернуть курицу и жарить еще в течение 3-5 минут под крышкой.\n"+
                "Подать жареную курицу горячей. На гарнир рекомендую пюре, свежие овощи, отварной картофель или рис с овощами.\n" +
                "Приятного аппетита!"

        val i2 = "Картофель фри в домашних условиях:Продукты\n" +
                "Картошка - 800 г\n" +
                "Растительное масло - 300 мл\n" +
                "Соль - 5г\n" +
                "Очистите картофель и нарежьте средними брусками, затем промойте несколько раз под холодной водой и замочите на 1 час, чтобы удалить крахмал с поверхности брусков. Подготовьте фритюр или глубокий сотейник.\n" +
                "Хорошенько просушите картофель с помощью бумажных полотенец.\n" +
                "Разогрейте растительное масло до 150°C и обжарьте картофель в течение 5 минут, затем извлеките его из масла и остудите.\n" +
                "Разогрейте растительное масло до 180°C и обжарьте картофель до золотистости.\n" +
                "Готовый картофель посолите и подавайте.\n" +
        "Приятного аппетита!"


        val i3 = "Быстрая сельдь:Продукты\n" +
                "Сельдь - 1 шт\n" +
                "Соль - 30 г\n" +
                "Лук репчатый - 2 шт\n" +
                "Масло подсолнечное - по вкусу\n" +
                "Размораживаем нашу рыбу, потрошим, отрезаем голову и хвост, с селёдки снимаем кожицу, хорошо промываем и обсушиваем бумажными полотенцами - она должна быть сухой.\n" +
                "Удаляем хребет и кости, укладываем в посуду, посыпаем тридцатью граммами крупной каменной соли с двух сторон, затягиваем пищевой плёнкой (или контейнер с крышкой) и оставляем на столе на один час.\n" +
                "По поводу соли: если вы любите совсем малосольную рыбу, то вполне хватит сорока минут, если традиционно малосольную, то примерно час, ну, а любители солёненького могут продержать в соли примерно час двадцать.\n" +
                "Пока рыба просаливается, нарезаем лук очень тонкими (насколько у вас получится) полукольцами, если лук большой, то четвертинками. Затем полукольца (четвертинки) разбираем на отдельные полуколечки и сверху накрываем.\n" +
                "Просоленную рыбу хорошо промываем водой, высушиваем бумажными полотенцами и затем нарезаем на небольшие кусочки.\n" +
                "Берём банку ёмкостью 0.5 - 0.7 л, на дно кладём лук, потом часть рыбы, затем опять лук - и таким образом заполняем до верха, заканчивая слоем лука. Не трамбуем и не уплотняем - как ложится, так пусть и будет, чтобы масло полностью заполнило всё свободное пространство и обволокло каждый кусочек содержимого банки.\n" +
                "Достаём растительное масло, начинаем понемногу заливать в банку, давая возможность полностью заполнить весь объём и накрыть верхний слой лука.\n" +
                "Закрываем крышкой и убираем в холодильник минимум на три часа, а лучше на ночь.\n"+
                "Приятного аппетита!"

       
val massive = arrayOf(i1, i2, i3)
        val arraySize = massive.size
        val randomchik = nextInt(arraySize)
        val nazvanierecepta = "${massive[randomchik]}"


        val textview2 = findViewById<TextView>(R.id.textView2)
        textview2.setText(nazvanierecepta)


    }


    }

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.randomfoodgenerator">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="Генератор случайных блюд"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.RandomFoodGenerator">
        <activity
            android:name=".SecondActivity"
            android:exported="false" />
        <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>
  • Вопрос задан
  • 286 просмотров
Решения вопроса 1
@AlexVWill
Смотри https://developer.android.com/reference/android/co...
Каждому рецепту должен быть присвоен свой уникальный код. Напротив рецепта, например, можно поставить звездочку "добавить в избранное", коды избранных рецептов сохранить с помощью SharedPreferences в предназначенный для этого XML файл, при открытии другого активити с "Избранным" прочитать эти коды и вывести нужные рецепты списком.
Иной вариант: если ты собираешься хранить локально большой список рецептов в виде базы данных, где будут разные поля: название, тип, дата, и так далее, предусмотреть одно поле - favorites, и сделать все тоже, что написал выше, но в базе данных. Используй для этого SQLite
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
402d
@402d
начинал с бейсика на УКНЦ в 1988
val iN в качестве модели ? Поковыряйтесь с примерами crud.
Сделайте таблицу рецептов и таблицу избранного.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы