【发布时间】:2015-04-13 11:12:30
【问题描述】:
我会完全翻译我的 Android 应用程序。 (这包括SQLite在手机上显示的语言)
这就像现在连接;
private static final int DATABASE_VERSION = 5;
private static final String DATABASE_NAME = "quotes.db";
private static final String DB_PATH_SUFFIX = "/databases/";
private static final String TABLE_QUOTES = "quote";
private static final String KEY_ID = "_id";
static Context myContext;
public DataBaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
myContext = context;
}
我曾想过删除名称字符串数据库并使用 strings.xml 文件将名称数据库传递给它。
super(context, context.getResources ().getString (R.string.DATABASE_NAME), null, DATABASE_VERSION);
同样通过strings.xml寻找查询传递,但是找不到明确的文档。
如果我不指导一点,我将不胜感激。非常感谢。
查询示例:
// Select All Query
String selectQuery = "SELECT name, COUNT(author_name ) AS count FROM author LEFT JOIN quote ON name = author_name WHERE name LIKE '%"
+ value + "%' GROUP BY name ORDER BY name ASC";
【问题讨论】:
-
如果您根据语言切换使用哪个数据库,那么您也不需要查询来使用strings.xml,结果已经从翻译的数据库中提取,对吗?您是否对粗体行有问题: super(context, context.getResources ().getString (R.string.DATABASE_NAME), null, DATABASE_VERSION);
-
嗨,是的,这些天我试图通过将数据库名称放在 strings.xml 中来完成,因为我的想法是添加更多语言。
public void openDataBase() throws SQLException { File dbFile = myContext.getDatabasePath(context.getResources (). getString (R.string.DATABASE_NAME)); if (!dbFile.exists()) { try { CopyDataBaseFromAsset(); System.out.println("Copying sucess from Assets folder"); } catch (IOException e) { throw new RuntimeException("Error creating source database", e); } } } -
也可以试试:Cursor cursor = db .rawQuery("SELECT quote._id, quote.author_name," + Resources.getSystem().getString(R.string.quer1) + "quote.qte, quote.category_name,fav FROM quote,author WHERE author.name = quote.author_name AND " + KEY_ID + "= " + id, null);试试 {
标签: android sqlite locale multilingual