Как проверить, существует ли запись в базе данных sqlite? - PullRequest
0 голосов
/ 10 мая 2019

Мой вопрос: как проверить, существует запись или нет?

Описание: у меня есть два фрагмента

1- Основной фрагмент ==>, который содержит обзор переработчика, в этом обзоре переработчик данные поступают из пожарного магазина и сохраняют эти данные в базе данных sqlite, когда пользователь щелкает по одному элементу просмотра переработчика.

2- Фрагмент заказов ==>, который содержит обзор переработчика, в этом обзоре переработчик данные поступают из sqlite, который сохраняется из основного фрагмента.

Мои вопросы о том, когда я возвращаюсь к основному фрагменту при нажатии на стек, я хочу проверить, что данные уже сохранены в sqlite или нет, если они существуют, то получите количество продукта и замените его в главном фрагменте на отдельном элементе в обзоре переработчика (текстовое представление количества продукта отключено, если найдена запись, завершившее его, и замените значение, полученное из sqlite, если запись существует).

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

в основном фрагменте

@Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if(isVisibleToUser)
        {
          //check sqlite item with firestore list item and update list and then notifyDataSetChanged();
        }
    }
0 голосов
/ 10 мая 2019

Я не совсем понял вашу проблему, но я думаю, что вы пытаетесь проверить, вставлены ли какие-либо данные в базу данных SQLite.

Чтобы сделать это, я предполагаю, что вы уже определили свои функции в вашем DatabaseHelper.class для выполнения стандартных процессов, потому что вы только спрашиваете, как проверить, есть ли какие-либо данные или нет.Вам нужна функция в вашем классе помощника, чтобы проверить, есть ли какие-либо данные, и вызвать ее из вашего MainFragment.java класса.

Вы не дали никакого фрагмента кода, поэтому я просто собираюсь принять их объявления.

Допустим, у вас есть действие с MainFragment.java и layout_mainfragment.xml

В вашем DatabaseHelper.class:

public String checkRecord(String productName){
        this.db = getWritableDatabase();
        //Cursor res = db.rawQuery("SELECT * FROM " + TABLE_NAME1,productName);
        String table = "record_table";
        String[] columns = {"product_name","product_quantity"};
        String selection = "product_name =?";
        String[] selectionArgs = {productName};
        String groupBy = null;
        String having = null;
        String orderBy = null;
        String limit = null;
        Cursor cursor = db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit);
        return cursor.getString(cursor.getColumnIndex("product_quantity"));
    }

Это должно возвращать количество продукта любого наименования продуктаэтот параметр функции ЕСЛИ находит любой индекс.

В вашем layout_mainfragment.xml:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/mainFragment_recordCount"
    android:visibility="gone"/>

Затем в вашем MainFragment.java классе:

TextView recordCount;
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_marker_specification);
        recordCount = (TextView) findViewById(R.id.mainFragment_recordCount);
        DatabaseHelper helper = new DatabaseHelper(mContext);
        String productRecord = helper.checkRecord("productname");
        //checkRecord will return quantity if index found and give productRecord that value.
        if(!productRecord.equals("")){
                recordCount.setVisibility(View.VISIBLE);
                recordCount.setText(productRecord);
                // If not empty, make TextView visible and set it's text to that quantity.
        }

         ....

        //(Your onCreate goes on)
         ....


}
...