Android Studio SQLite сохранить название, если не в базе данных?

Здравствуйте, я делаю простое приложение для заметок, используя базу данных SQLite, используя пользовательский адаптер arraylist, где пользователь может сохранить заметку с заголовком, описательным текстом и датой. Все работает, но я хочу, чтобы пользователи могли сохранять новую заметку только в том случае, если заголовка нет в базе данных. Как я могу это сделать ?

Вот заметка о редактировании

public class Edit_notes extends AppCompatActivity {

    private DBOpenHelper dbop;
    private SQLiteDatabase sdb;
    private EditText title_text;
    private EditText note_text;


    public boolean SaveNote(){

        String note_title_string = title_text.getText().toString();
        String note_text_string = note_text.getText().toString();

        if (!note_title_string.isEmpty()){
            if (!note_text_string.isEmpty()) {

// Need to check if title is not in the database then insert else don't

                String date = new Date().getDate() + "/" + (new Date().getMonth() + 1) + "/" + (new Date().getYear() + 1900);
                AddData(note_title_string, note_text_string, date); // Add title to the database
                Toast.makeText(this, "Note saved", Toast.LENGTH_SHORT).show();
                finish();
            }
            else {
                Toast.makeText(this, "Note text cannot be empty", Toast.LENGTH_SHORT).show();
            }

        }
        else{
            Toast.makeText(this, "Title cannot be empty", Toast.LENGTH_SHORT).show();
        }

        return true;
    }

    public void AddData(String title_entry, String text_entry, String date){

        dbop = new DBOpenHelper(this);
        sdb = dbop.getWritableDatabase();

        ContentValues cv = new ContentValues();
        cv.put("TITLE", title_entry);
        cv.put("TEXT", text_entry);
        cv.put("DATE", date);

        sdb.insert("note_table", null, cv);
    }

}

База данных SQLite.java:

public class DBOpenHelper extends SQLiteOpenHelper {

public static final String DATABASE_NAME = "notes.db";
public static final String TABLE_NAME = "note_table";
public static final String ID_COLUMN = "ID";
public static final String TITLE_COLUMN = "TITLE";
public static final String TEXT_COLUMN = "TEXT";
public static final String DATE_COLUMN = "DATE";

SQLiteDatabase db = this.getWritableDatabase();


public DBOpenHelper(Context context) {
    super(context, DATABASE_NAME, null, 5);
}

@Override
public void onCreate(SQLiteDatabase db) {
    String createTable = "CREATE TABLE " + TABLE_NAME
            + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, " + " TITLE TEXT, " + " TEXT TEXT, " + " DATE STRING)";
    db.execSQL(createTable);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("drop table note_table");
    onCreate(db);
}

}

Я думаю, нет необходимости предоставлять mainactivity.java

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
48
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Измените таблицу Создать на: -

String createTable = "CREATE TABLE " + TABLE_NAME
        + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, " + " TITLE TEXT UNIQUE, " + " TEXT TEXT, " + " DATE STRING)";

Удалите приложение или удалите данные приложения или увеличьте номер версии базы данных и перезапустите приложение. Строка не будет добавлена. УНИКАЛЬНЫЙ конфликт ограничений (тот же заголовок) (метод вставки эффективно использует INSERT OR IGNORE).

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