あなただけのデータベースに整数として、あなたのリソースIDを格納することができますし、次のように私は私のデータベースクラスを作成したデータベースから整数型を取得することができますし、
textView.setText(integerResourceIdFromDatabase);
ようTextViewのためにそのint型を設定することができます。
package com.demo.sqlitedemo.databasehelper;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DbHelper extends SQLiteOpenHelper {
private static String DATABASE_NAME = "Demo_db";
private static int VERSION = 1;
private static final String TABLE_STRING_IDS = "string_ids";
private static final String STRING_ID = "string_id";
private static final String STRING_TABLE_CREATE = "create table "
+ TABLE_STRING_IDS + "(" + STRING_ID
+ " integer primary key);";
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(STRING_TABLE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_STRING_IDS);
onCreate(db);
}
public void insertId(int stringId) {
SQLiteDatabase database = getWritableDatabase();
ContentValues values = new ContentValues();
values.put(STRING_ID, stringId);
database.insert(TABLE_STRING_IDS, "", values);
database.close();
}
public int getStringId() {
SQLiteDatabase database = getReadableDatabase();
Cursor cursor = database.query(TABLE_STRING_IDS, new String[]{STRING_ID}
, null, null, null, null, null);
cursor.moveToFirst();
int id = cursor.getInt(cursor.getColumnIndex(STRING_ID));
database.close();
return id;
}
}
とデータをフェッチするには、この
dbHelper.insertId(R.string.my_string);
のように主な活動でそれを使用
textView.setText(dbHelper.getStringId());
あなたは、いくつかのstrings.xmlリソースファイル内のすべての翻訳を提供する必要があり
私にとって、これは完全に正常に動作します。おそらくあなたのアプリケーションSharedPreferencesに言語を保存します。 "it"や "en"のようなもの...そしてそれに応じてアプリのロケールを切り替えます。 –