我想知道如何在本地将单个整数值存储到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;
}
答案 0 :(得分:1)
数据库不是您的情况的解决方案。如果您不想使用共享首选项,请使用该文件。
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()
}
但是,如果您只想要唯一的数据库,Official sitel将为您提供帮助
// 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)