Как сохранить и получить одно целое значение через sqlite - PullRequest
0 голосов
/ 13 июня 2019

Я хотел бы знать, как локально сохранить одно целочисленное значение в базе данных sqlite, а затем получить это значение в методе другого класса.PS: я не хочу использовать sharedpreference.

У меня есть логическое значение true, которое я преобразовал в int, используя;

 public class MainActivity extends Activity{
      boolean booleanValue = true
      public static int value= (booleanValue == true)? 1:0;

    }

В классе 2

  public int retrieveValue(){
   //SQlite function to retrieve integer value
   int valueInDatabase = value;
   return valueInDatabase;
  }

1 Ответ

1 голос
/ 13 июня 2019

База данных не является решением для вашего случая. Если вы не хотите использовать общие предпочтения, используйте файл.

fun readFromFile(context: Context, fileName: String): String {
  return try {
                FileInputStream(File(context.applicationContext.filesDir, fileName)).bufferedReader()
                    .use { it.readText() }
            } catch (e: Exception) {
                println("it is checking point of Error read file " + e.message)
                ""
            }

        }

fun writeToFile(context: Context, fileName: String, data: String = "") {
            try {
                FileOutputStream(File(context.applicationContext.filesDir, fileName)).use {
                    it.write(data.toByteArray())
                }
            } catch (e: FileNotFoundException) {
                println("it is checking point of Error write file " + e.message)
            }
        }

Как использовать это в своем коде.

В вашей основной деятельности.

writeToFile(this, YOUR_FILE_NAME, yourInterger.toString())

Тогда во втором занятии

val fileContent = readFromFile(this, YOUR_FILE_NAME)
var yourInterger = if (fileContent.isEmpty()) {
    yourDefaultValue
}else{
    fileContent.toInt()
}

Но если вам нужна единственная база данных, Официальный сайт поможет вам

// Gets the data repository in write mode
val db = dbHelper.writableDatabase

// Create a new map of values, where column names are the keys
val values = ContentValues().apply {
    put(FeedEntry.COLUMN_NAME_TITLE, title)
    put(FeedEntry.COLUMN_NAME_SUBTITLE, subtitle)
}

// Insert the new row, returning the primary key value of the new row
val newRowId = db?.insert(FeedEntry.TABLE_NAME, null, values) 
...