Хранение данных в локальной базе данных - PullRequest
0 голосов
/ 22 октября 2018

Благодаря авторам из Stackoverflow я смог разработать свое первое приложение для Android с помощью Android Studio без каких-либо предварительных знаний Java.Это приложение для сканирования штрих-кода с уникальным интерфейсом (использующее ZXing) с двумя полями EditText и кнопкой OK.Два поля заполнены сканером штрих-кода.

Я хочу сохранить данные в двух полях EditText в локальной базе данных с двумя столбцами (для двух полей) и одной таблицей.

Я не прошу код, я просто прошу рекомендации и советы по продвижению разработки моего приложения.

Спасибо

This is a screencap of my app

Ответы [ 3 ]

0 голосов
/ 22 октября 2018

Во-первых, вы должны прочитать это https://developer.android.com/guide/topics/data/data-storage

Теперь решите сами, что лучше всего соответствует вашим потребностям, принимая во внимание все соответствующие факторы.

Выглядит для меня как проект для домашних животныхи вы просто хотите сохранить два значения, я бы посоветовал вам сохранить их с помощью SharedPreferences

См. https://developer.android.com/training/data-storage/shared-preferences

0 голосов
/ 23 октября 2018

Я думаю, что вы должны использовать Sqlite Database, и именно так вы должны ее использовать.

DBHelper.java

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Hashtable;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.DatabaseUtils;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase;

public class DBHelper extends SQLiteOpenHelper {

   public static final String DATABASE_NAME = "MyDBName.db";
   public static final String CONTACTS_TABLE_NAME = "barcode";
   public static final String CONTACTS_COLUMN_ID = "id";
   public static final String CONTACTS_COLUMN_TEXT1 = "field1";
   public static final String CONTACTS_COLUMN_TEXT2 = "field2";

   private HashMap hp;

   public DBHelper(Context context) {
      super(context, DATABASE_NAME , null, 1);
   }

   @Override
   public void onCreate(SQLiteDatabase db) {
      // TODO Auto-generated method stub
      db.execSQL(
         "create table barcode" +
         "(id integer primary key, field1 text, field2 text)"
      );
   }

   @Override
   public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      // TODO Auto-generated method stub
      db.execSQL("DROP TABLE IF EXISTS barcode");
      onCreate(db);
   }

   public boolean insertData (String text1, String text2) {
      SQLiteDatabase db = this.getWritableDatabase();
      ContentValues contentValues = new ContentValues();
      contentValues.put("field1", text1);
      contentValues.put("field2", text2);
      db.insert("barcode", null, contentValues);
      return true;
   }

   public Cursor getData(int id) {
      SQLiteDatabase db = this.getReadableDatabase();
      Cursor res =  db.rawQuery( "select * from barcode where id="+id+"", null );
      return res;
   }



   public boolean updateBarcode (Integer id, String text1, String text2) {
      SQLiteDatabase db = this.getWritableDatabase();
      ContentValues contentValues = new ContentValues();
      contentValues.put("field1", text1);
      contentValues.put("field2", text2);
      db.update("barcode", contentValues, "id = ? ", new String[] { Integer.toString(id) } );
      return true;
   }

Ваша деятельность или фрагмент

  private DBHelper mydb ;
  mydb = new DBHelper(this);

   //insert
   if(mydb.insertBarcode(EditText1.getText().toString(), 
                       EditText2.getText().toString())){
              Toast.makeText(getApplicationContext(), "done",
                       Toast.LENGTH_SHORT).show();  
    } else{
           Toast.makeText(getApplicationContext(), "not done", 
                   Toast.LENGTH_SHORT).show();  
    }

   //Read
   Cursor getBarcode= mydb.getData(id_to_search);

Вы также можете добавить больше функций, таких как чтение данных из таблицы и т. Д. В DBHelper.java

0 голосов
/ 22 октября 2018

Почему вы выбираете базу данных для хранения этих 2 значений?Вы думали о предпочтениях?Я думаю, что это более подходит.

...