Как получить ввод пользователя, например editText, а затем вставить в базу данных sqlite?

0

Я хочу получить ввод пользователя, например editText, при нажатии кнопки сохранения вставки в базу данных sqlite. Как это сделать. Я ищу, но не могу найти. Я пишу приложение для блокнота. Эталонное изображение

    package com.suleymanemre.notepad;

import androidx.appcompat.app.AppCompatActivity;

import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class note extends AppCompatActivity {
    EditText editText;
    Button button;

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

        button= findViewById(R.id.save);
        editText = findViewById(R.id.editText);

    }
    public void save(View view){
        SQLiteDatabase noteDatabase = openOrCreateDatabase("Notes",MODE_PRIVATE,null);

        noteDatabase.execSQL("CREATE TABLE IF NOT EXISTS Notes(Notes VARCHAR);");

    }

    public void esc (View view){
        super.onBackPressed(); 
    }

}
Теги:
insert
CodeFix

2 ответа

0

Если вы хотите просто сохранить 1 значение, подумайте об использовании SharedPreference, используя:

SharedPreference mPref = context.getSharedPreferences(SETTINGS_NAME, Context.MODE_PRIVATE);
//get value
 return mPref.getString(Key.YOUR_KEY, DEFAULT_VALUE_IN_STRING);
//add value
SharedPreferences.Editor mEditor = mPref.edit();
mEditor.putString(Key.YOUR_KEY, YOUR_VALUE);
mEditor.commit()

Если вы хотите использовать базу данных SQLite, рассмотрите возможность использования Room:

Добавьте это в свой файл build.gradle:

def room_version = "2.2.5"

  implementation "androidx.room:room-runtime:$room_version"
  annotationProcessor "androidx.room:room-compiler:$room_version"

Создайте свои классы базы данных:

@androidx.room.Dao
public interface MyDao {

    @Query("SELECT * FROM MyClass")
    List<MyClass> getAll();

    @Insert
    void insertAll(List<MyClass> mList);

    @Insert
    void insert(MyClass mItem);
}

Создайте свой класс базы данных приложений:

@Database(entities = {MyClass.class}, version = 1)
public abstract class MyAppDatabase extends RoomDatabase {
    public abstract MyDao MyDao();
}

Создайте свой класс Singleton:


public class MyDatabaseClient {

    private Context mCtx;
    private static MyDatabaseClient mInstance;

    private MyAppDatabase myAppDatabase;

    private MyDatabaseClient(Context mCtx) {
        this.mCtx = mCtx;
        myAppDatabase = Room.databaseBuilder(mCtx, MyClass.class, "MyDatabaseName").build();
    }

    public static synchronized MyDatabaseClient getInstance(Context mCtx) {
        if (mInstance == null) {
            mInstance = new MyDatabaseClient(mCtx);
        }
        return mInstance;
    }

    public MyAppDatabase getMyAppDatabase() {
        return myAppDatabase;

Класс вашего элемента (не стесняйтесь добавлять новые элементы для сохранения или извлечения:

@Entity
public class MyClass implements Serializable {

    @PrimaryKey(autoGenerate = true)
    @ColumnInfo(name = "uid")
    public int uid;

    @ColumnInfo(name = "name")
    public String name;

    public int getUid() {
        return uid;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

Использование:

//Get All
MyDatabaseClient.getInstance(getApplicationContext()).getMyAppDatabase().MyDao().getAll();

//Insert
final List<MyClass> mList = new ArrayList<>();
MyClass items = new MyClass();
items.setName("YOUR_VALUE");
mList.add(items);
MyDatabaseClient.getInstance(getApplicationContext()).getMyAppDatabase().MyDao().insertAll(mList);
Поделиться
Источник
  • 0
    Я новичок в программировании. Я не понимаю. Почему вы пишете <myclass>. Я запутался. Мне нужно посмотреть учебник по базе данных комнаты.
  • 0
    myclass - это просто имя. Вы можете использовать любое имя, например ItemsClass или UserInputClass.
0

Вам нужно подготовить класс, расширяющий SQLiteOpenHelper.

Эта ссылка может быть полезна для создания приложения для заметок.

https://www.javahelps.com/2015/07/android-memo-application.html?m=1

Поделиться
Источник

Другие вопросы

  • Ошибка "import io.grpc.examples.helloworld.GreeterGrpc" для Android и GRPC1 ответ

    Я пытаюсь разработать GRPC для мобильного приложения Android. Я нашел образец проекта HelloWorld из https://github.com/grpc/grpc-java/tree/v1.34.1/examples/android/helloworld При сборке проекта я получил следующую ошибку: import io.grpc.examples.helloworld.GreeterGrpc; ^ символ: класс GreeterGrpc ра...

  • Не удается собрать данные о частоте пульса в Google Fit Api за последнюю неделю1 ответ

    Я пытаюсь получить сводку сердечного ритма за одну неделю из Google Api, но я не получаю результата только по имени типа данных. Если я беру только в течение определенного часа, Api возвращает частоту сердечных сокращений, полученную с mi Mi Band 5, каждые 5 минут или около того. Если бы кто-нибудь ...

  • Избегайте условий гонки в Firebase Android1 ответ

    Я разрабатываю приложение для Android, которое предоставляет пользователям возможность бронировать столики в ресторанах, и я использую базу данных в реальном времени для хранения необходимой информации, такой как количество пустых столиков в ресторане и то, что это проблематично. Допустим, у нас ест...

  • Проблема форматирования даты в Android1 ответ

    У меня возникла проблема при преобразовании String в настоящее время.27-Jul-2020 это моя строка ввода для даты.SimpleDateFormat inputFormat = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH); Date parsedTransactionDate = inputFormat.parse(transactionDate);//transaction date is `27-Jul-2...

  • Медленная загрузка некоторых ссылок, запускающих HTTPUrlConnection в Java1 ответ

    Я новичок в программировании. Я пытаюсь написать приложение для Android, которое загружает список со ссылками в HTML и использует указанные ссылки для загрузки содержимого этих ссылок. Выложу Код Загрузчика и Журнал. Мой вопрос: почему некоторым ссылкам требуется около 5 секунд, а некоторым - до 5 м...

  • Как перезагрузить экран для будущих данных1 ответ

    у меня естьTabBarView с шестью вкладками. Я пытаюсь показать все установленные приложения на первой вкладке. Даже послеapps ЗаполненCircularProgressIndicator отображается. Приложения отображаются в списке при повторном посещении первой вкладки.AppScreenC вызывается для первой вкладки.final model = A...

  • Android записывает во вторичное внешнее хранилище (в разрешении отказано)1 ответ

    Когда я пытаюсь записать в файл во вторичном внешнем хранилище (SD-карта), я получаю следующую ошибку:java.io.FileNotFoundException: /storage/70F7-83E4/file.txt (Permission denied) Я добавил в свой манифест следующие разрешения:<uses-permission android:name="android.permission.READ_EXTERNAL...

  • Ошибка с моим sqlite после добавления нового столбца2 ответ

    Я добавил "id" в свою таблицу, и она внезапно перестала работать. Ошибка:E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.silkamanager, PID: 21747 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.silkamanager/com.example.silkamanager.NowyTr...

  • house pset7 у меня работает нормально но не работает при запуске через check501 ответ

    набор, над которым я работаю, состоит из 2 частей, обе из которых отлично работают со мной. однако, когда я пропущу их через check50, я получу 1/6. вот ссылка на то, что я должен делать в pset: pset, и это ошибки, которые я получаю: errors . вот мой код для import.py:from cs50 import SQL from sys im...

  • Как обновить представление ресайклера в первом действии при изменении данных в другом действии?2 ответ

    Я пытаюсь создать приложение todolist с помощью sqlite. Я создал представление ресайклера в основном действии и другое действие, чтобы добавить новое задание. Но когда я добавляю задачу, я хочу обновить представление ресайклера, как я могу это сделать? Пожалуйста помоги Видео - https://i.imgur.com/i...

CodeFix
Цитата дня

"Завидую тестировщикам: все хотят с ними дружить."

Эндрю Таненбаум