C
C
Cgfdgfd2021-12-18 17:30:09
android studio
Cgfdgfd, 2021-12-18 17:30:09

How to make in android studio so that the user can add the selected recipe to bookmarks?

And at the touch of a button, I went to the bookmark section (I will create 3 activities), where I could see all my saved recipes. Since I am a beginner, I will be very grateful if you tell me how to do it with an explanation.
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>

Answer the question

In order to leave comments, you need to log in

2 answer(s)
A
AlexVWill, 2021-12-18
@Cgfdgfd

See https://developer.android.com/reference/android/co...
Each recipe must be assigned its own unique code. Opposite the recipe, for example, you can put an asterisk "add to favorites", save the codes of favorite recipes using SharedPreferences to the XML file intended for this, when you open another activity with "Favorites", read these codes and display the necessary recipes in a list.
Another option: if you are going to store a large list of recipes locally in the form of a database, where there will be different fields: name, type, date, and so on, provide one field - favorites, and do everything that I wrote above, but in the database . Use SQLite for this

O
Oleg, 2021-12-18
@402d

val iN as a model ? Poke around with the crud examples.
Make a table of recipes and a table of favorites.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question