Ответы пользователя по тегу Android Studio
  • Как сделать интерфейс в androud studio, типо excel?

    @AlexVWill
    Для этого есть специальный Layout
    https://developer.android.com/reference/android/wi...
    ну и попробовать чужие библиотеки

    https://github.com/zhouchaoyuan/excelPanel
    Ответ написан
    Комментировать
  • Какие есть аналоги Android Studio на Ubuntu?

    @AlexVWill
    QT, VS Code, Sublime Text. Сборка через консоль. Через жопу, конечно, Android Studio конечно удобнее в разы, но хоть что-то. А лучше новый комп взять, который не тормозит. Или апгрейдить.
    Ответ написан
    Комментировать
  • Как поменять название версии Android приложения?

    @AlexVWill
    Версия приложения указывается в build.gradle
    android {
        compileSdk 31
    
        defaultConfig {
            applicationId "com.mycompany.myapp"
            minSdk 21
            targetSdk 31
            versionCode 7
            versionName "1.04"
    
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        }
    ...


    versionCode 7 - это уникальный номер версии, если ты выпускаешь новую, то надо её менять, т.к. одинаковых версий в play.google.com быть не должно, гугльплей ругнется если ты загрузишь новый аар со старой версией.
    versionName "1.04" - это внутренне название версии, по сути информационная стока для пользователей, и там можно поставит теоретически что угодно.
    Ответ написан
    1 комментарий
  • Как полностью преустановить android studio на Ubuntu 20.04?

    @AlexVWill
    удОли папки /home/user/android, /home/user/.android, /home/user/Android
    Ответ написан
  • Как отправить POST запрос на Android?

    @AlexVWill
    отправить POST запрос на Android

    А точно POST запрос НА Android, а не С Android? Если надо именно НА, то надо понимать, что на смартфоне должна быть установлена некая программа web - сервер, которая будет отвечать на запрос.
    Если же надо направить С, то это делается обычными способами, по гуглю есть куча иформации и библиотек, как это можно сделать. API нужен не на смартфоне, а на сервере, который будет реагировать на подобный запрос. И таки да, если API есть, то нужно читать мануал к конкретному API как с ним работать.
    В общем вопрос непонятен, попробуй его грамотно сформулировать.
    Ответ написан
    Комментировать
  • Как сделать обработку нажатия в диалоге?

    @AlexVWill
    Методом DialogInterface.OnClickListener()
    Я уже как то отвечал на похожий вопрос, посмотри код, там есть готовое решение: https://qna.habr.com/q/1105428
    И не надо скриншоты выкладывать, выкладывай лучше текст кода под спойлер.
    Ответ написан
    4 комментария
  • Как вывести отдельный layout в виде всплывающего окна?

    @AlexVWill
    Сначала нарисовать Layout и зазвать его policy_popup (для данного примера, ну или как тебе хочется)
    spoiler
    <?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">
    
        <ScrollView
            android:id="@+id/scrollView4"
            android:layout_width="wrap_content"
            android:layout_height="250dp"
            android:layout_marginStart="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginBottom="8dp"
            app:layout_constraintBottom_toTopOf="@+id/donotshow"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">
    
            <androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/linearLayout4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
    
                <TextView
                    android:id="@+id/policy_text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="8dp"
                    android:layout_marginLeft="8dp"
                    android:text="@string/policy_disclosure_ru"
                    android:textColor="#000000"
                    android:textSize="16sp"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />
    
            </androidx.constraintlayout.widget.ConstraintLayout>
        </ScrollView>
    
        <CheckBox
            android:id="@+id/donotshow"
            android:layout_width="wrap_content"
            android:layout_height="48dp"
            android:layout_marginStart="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            android:text="Больше не показывать"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />
    
    </androidx.constraintlayout.widget.ConstraintLayout>


    Второй data_popup
    spoiler
    <?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">
    
        <ScrollView
            android:id="@+id/scrollView4"
            android:layout_width="wrap_content"
            android:layout_height="300dp"
            android:layout_marginStart="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">
    
            <androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/linearLayout4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
    
                <TextView
                    android:id="@+id/data_text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="8dp"
                    android:layout_marginLeft="8dp"
                    android:text="@string/data_disclosure_ru"
                    android:textColor="#000000"
                    android:textSize="16sp"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent" />
            </androidx.constraintlayout.widget.ConstraintLayout>
        </ScrollView>
    
    </androidx.constraintlayout.widget.ConstraintLayout>

    Потом где то в коде Main Activity написать
    spoiler
    public void policytextshow(){
            LayoutInflater li = LayoutInflater.from(this);
            View promptsView = li.inflate(R.layout.policy_popup, null);
            //Make AlertDialog
            AlertDialog.Builder mDialogBuilder = new AlertDialog.Builder(this);
            //Настраиваем .xml для нашего AlertDialog:
            mDialogBuilder.setView(promptsView);
            //Настраиваем отображение поля для ввода текста в открытом диалоге:
            //Настраиваем сообщение в диалоговом окне:
            CheckBox hidebox = (CheckBox) promptsView.findViewById(R.id.donotshow);
            mDialogBuilder
                    .setCancelable(false)
                    .setIcon(R.drawable.shield1)
                    .setTitle("Политика информации")
                    .setPositiveButton("OK",
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog,int id) {
                                    if (hidebox.isChecked()) {
                                        SharedPreferences.Editor editor = mSettings.edit();
                                        editor.putString(APP_PREFERENCES_SHOWPOLICY, "1");
                                        editor.apply();
                                    }
                                    dialog.cancel();
                                    // if policy alert dialog closed - work with contacts list
                                    contacts();
                                }
                            });
            //Создаем AlertDialog:
            AlertDialog alertDialog = mDialogBuilder.create();
            //и отображаем его:
            alertDialog.show();
    
            LayoutInflater li1 = LayoutInflater.from(this);
            View promptsView1 = li1.inflate(R.layout.data_popup, null);
            //Make AlertDialog
            AlertDialog.Builder mDialogBuilder1 = new AlertDialog.Builder(this);
            //Настраиваем .xml для нашего AlertDialog:
            mDialogBuilder1.setView(promptsView1);
            //Настраиваем отображение поля для ввода текста в открытом диалоге:
            //Настраиваем сообщение в диалоговом окне:
            mDialogBuilder1
                    .setCancelable(false)
                    .setIcon(R.drawable.shield1)
                    .setTitle("Используемые данные")
                    .setPositiveButton("OK",
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog1,int id) {
                                    if (hidebox.isChecked()) {
                                        SharedPreferences.Editor editor = mSettings.edit();
                                        editor.putString(APP_PREFERENCES_SHOWPOLICY, "1");
                                        editor.apply();
                                    }
                                    dialog1.cancel();
                                }
                            });
            //Создаем AlertDialog:
            AlertDialog alertDialog1 = mDialogBuilder1.create();
            //и отображаем его:
            alertDialog1.show();
        }

    По этому коду сначала выскакивает одно сообщение, потом, при нажатии на Ок - второе, потом оно закрывается.
    Ответ написан
  • Как в android studio сделать чтобы пользователь мог добавлять выбранный рецепт в закладки?

    @AlexVWill
    Смотри https://developer.android.com/reference/android/co...
    Каждому рецепту должен быть присвоен свой уникальный код. Напротив рецепта, например, можно поставить звездочку "добавить в избранное", коды избранных рецептов сохранить с помощью SharedPreferences в предназначенный для этого XML файл, при открытии другого активити с "Избранным" прочитать эти коды и вывести нужные рецепты списком.
    Иной вариант: если ты собираешься хранить локально большой список рецептов в виде базы данных, где будут разные поля: название, тип, дата, и так далее, предусмотреть одно поле - favorites, и сделать все тоже, что написал выше, но в базе данных. Используй для этого SQLite
    Ответ написан
    Комментировать