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));
}}
tôi nhận được lỗi nàyTại sao tôi không thể sử dụng Resources.getSystem() mà không có lỗi Runtime?
01-14 12: 20: 57,591: E/AndroidRuntime (1825): Nguyên nhân: android.content.res.Resources $ NotFoundException: String ID tài nguyên # 0x7f040003
mã gây ra lỗi là dòng duy nhất bên createProfileTable đặc biệt, Resources.getSystem(). getString (R.string.create_profile_table_sql) nếu tôi sử dụng một biến lớp để tổ chức một Bối cảnh và làm context.getString (R.string.create_profile_table_sql) Tôi không hiểu bất kỳ lỗi nào nhưng tôi không muốn làm điều đó bởi vì tôi muốn tránh rò rỉ bộ nhớ và theo những gì tôi biết điều này sẽ làm việc. Bất kỳ ý tưởng gì đang xảy ra?
Điều này không thực sự trả lời câu hỏi của bạn, nhưng tài nguyên Chuỗi thường dành cho Chuỗi hiển thị do người dùng hiển thị (do đó bạn có thể cung cấp các ngôn ngữ khác nhau sau này nếu bạn muốn). Trong tình huống này, việc xác định một chuỗi không đổi định nghĩa câu lệnh tạo của bạn sẽ không sao. – Brandon