- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序是一个音板应用程序,但是类别中有很多声音。每个类别都在不同的 Activity 中运行。因此,第一个 Activity 会在用户选择类别时调用其他 Activity 。
该应用程序有 200 多种声音,我开始制作一个 SQLite 数据库,以便用户可以选择最喜欢的声音并在单独的 Activity 中显示它们。
它已经在工作了,但是代码在 Activity 中,当我将 sqlite 代码放在另一个类中的一个方法中时(如果我想改变一些东西,它会让我的工作更容易,因为有 20 个类别)它给了我对于 MODE_WORLD_WRITEABLE
,“无法解析为变量”。
方法如下:
public void cria(String titulo,int id){
SQLiteDatabase sampleDB = null;
try {
sampleDB = this.openOrCreateDatabase(SAMPLE_DB_NAME, CODE_WORLD_WRITEABLE, null);
sampleDB.execSQL("CREATE TABLE IF NOT EXISTS " +
SAMPLE_TABLE_NAME +
" (titulo VARCHAR, id INT);");
sampleDB.execSQL("INSERT INTO " +
SAMPLE_TABLE_NAME +
" Values ('" +
titulo +
"'," +
id +
");");
} catch (SQLiteException se ) {
Log.e(getClass().getSimpleName(), "Could not create or Open the database");
} finally {
//nothin to do
}
}
我曾尝试使用 (String titulo,int id, Context cont) 和 cont.CODE_WORLD_WRITEABLE
但随后出现错误,如 openOrCreateDatabase is undefined for the type banco(banco 是类名称)
。
如何在另一个不是 Activity 的类中使用 openOrCreateDatabase
?如果你们可以给我看一个 fragment 。
=========编辑===========
随着 zrgiu 解决了这个问题,这里是我在 banco 类中的代码:
公共(public)类银行{
private final static String SAMPLE_DB_NAME = "myFriendsDb";
private final static String SAMPLE_TABLE_NAME = "friends";
public static void cria(String titulo,int id, Context cont){
SQLiteDatabase sampleDB = null;
try {
sampleDB = cont.openOrCreateDatabase(SAMPLE_DB_NAME, Context.MODE_WORLD_WRITEABLE, null);
sampleDB.execSQL("CREATE TABLE IF NOT EXISTS " +
SAMPLE_TABLE_NAME +
" (titulo VARCHAR, id INT);");
sampleDB.execSQL("INSERT INTO " +
SAMPLE_TABLE_NAME +
" Values ('" +
titulo +
"'," +
id +
");");
} catch (SQLiteException se ) {
Log.e(cont.getClass().getSimpleName(), "Could not create or Open the database");
} finally {
sampleDB.close();
}
}
在我使用的 Activity 中:
banco.cria(somestring,someint, this);
再次感谢zrgiu。
最佳答案
您将需要一个上下文来创建/打开本地化到您的应用程序的数据库。对你来说最简单的方法就是将上下文实例传递给你的函数或类,确保你不会泄漏它。
另一种解决方案是将您的 sqlite 数据库存储在外部存储上,这不需要上下文,但也会将您的数据库公开给所有其他应用程序和用户。
关于java - SQLite Android - MODE_WORLD_WRITEABLE 无法解析为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9865945/
我的应用程序是一个音板应用程序,但是类别中有很多声音。每个类别都在不同的 Activity 中运行。因此,第一个 Activity 会在用户选择类别时调用其他 Activity 。 该应用程序有 20
我有多个应用程序通过首选项共享某些数据。每个应用程序都通过 PreferenceActitivity(来自 xml)设置其首选项。两个问题: 如何在另一个应用程序中使用/编辑由一个应用程序创建的首选项
Android 中的 SharedPreferences 是应用程序本地的,不会在不同应用程序之间共享。当我说 SharedPreferences preferences = getSharedPre
我是一名优秀的程序员,十分优秀!