public class BobDatabase extends SQLiteOpenHelper{
private static final String DATABASE_NAME = "bob.db";
private static final int DATABASE_VERSION = 1;
public static final String DEFAULT_PROFILE = "default_profile";
public BobDatabase(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database)
{
createProfileTable(database);
createTimeTable(database);
createEventTable(database);
createLocationTable(database);
}
/**
* Creates a table for Profile objects, executes the string create_profile_table_sql
* contained within strings.xml
* @param database
*/
public void createProfileTable(SQLiteDatabase database)
{
database.execSQL(Resources.getSystem().getString(R.string.create_profile_table_sql));
}}
Я получаю эту ошибкуПочему я не могу использовать Resource.getSystem() без ошибки Runtime?
01-14 12: 20: 57,591: E/AndroidRuntime (1825): Вызванный: android.content.res.Resources $ NotFoundException: String ресурс ID # 0x7f040003
кода, который вызывает ошибку является одной строкой внутри createProfileTable конкретно, Resources.getSystem(). GetString (R.string.create_profile_table_sql), если я использую переменный класс держать контекст и сделать context.getString (R.string.create_profile_table_sql) Я не получаю любые ошибки, но я не хочу этого делать, потому что я хочу избежать утечек памяти и в соответствии с тем, что знаю, это должно работать. Любая идея, что происходит?
Это на самом деле не отвечает на ваш вопрос, но ресурсы String, как правило, предназначены для отображаемых пользователем строк (поэтому вы можете предоставить разные языки позже, если хотите). В этой ситуации определение константной строки, определяющей ваш оператор create, будет в порядке. – Brandon