我需要将一些默认数据放到数据库中。我在databasehelper中创建了方法:
private void putDefaultList(SQLiteDatabase db){
String nazwaa = null;
String mark = "0";
ArrayList<String> nazwa = new ArrayList<>();
nazwa.add("jjjjjj");
nazwa.add("kokoko");
for (int i =0; i<nazwa.size(); i++) {
nazwaa = nazwa.get(i);
db.execSQL("INSERT INTO " + TodoTable.TABLE_NAME + " (" + TodoTable.COL_2 + ", " + TodoTable.COL_3 + ") VALUES (" + "'" + nazwaa + "'" + ", " + "'" + mark + "'" + ")");
}
这种方法有效,但我需要有不同的语言,所以最简单的方法是访问strings.xml,但我不知道在这种情况下如何。
我试过了 。Resources.getSystem()的getString(R.string.jjjjjj)); 但这会让我的应用程序崩溃
答案 0 :(得分:4)
public class DbHelper extends SQLiteOpenHelper {
private Context context;
public DbHelper(Context context, String name, int version) {
super(context, name, null, version);
// Application Context
this.context = context.getApplicationContext();
}
@Override
public void onCreate(SQLiteDatabase db) {
String res = this.context.getString(String_resId);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
答案 1 :(得分:0)
您可以创建类App:
public class App extends Application {
private static Context mContext;
@Override
public void onCreate() {
super.onCreate();
mContext = this;
}
@Override
public void onTerminate() {
super.onTerminate();
}
public static Context getContext() {
return mContext;
}
}
然后,在AndroidManifest.xml中:
<application android:name="App"
<!-- More properties-->
>
</application>
现在,在数据库助手中,您可以通过以下方式获取上下文:
Context context = App.getContext();
所需的字符串:
String myString = context.getResources().getString(R.string.jjjjjj);
希望它有所帮助!