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));
}}
मैं इस त्रुटि मिलती हैमैं रनटाइम त्रुटि के बिना Resources.getSystem() का उपयोग क्यों नहीं कर सकता?
01-14 12: 20: 57.591: ई/AndroidRuntime (1825): android.content.res.Resources $ NotFoundException: की वजह से स्ट्रिंग संसाधन आईडी # 0x7f040003
कोड है कि त्रुटि होती है createProfileTable अंदर एकल लाइन है विशेष रूप से, Resources.getSystem()। GetString (R.string.create_profile_table_sql) अगर मैं एक वर्ग चर का उपयोग एक संदर्भ पकड़ और context.getString करने के लिए (R.string.create_profile_table_sql) मुझे नहीं मिलता कोई भी त्रुटि लेकिन मैं ऐसा नहीं करना चाहता क्योंकि मैं स्मृति रिसाव से बचना चाहता हूं और जो मुझे पता है उसे काम करना चाहिए। कोई विचार क्या हो रहा है?
यह वास्तव में आपके प्रश्न का उत्तर नहीं देता है, लेकिन स्ट्रिंग संसाधन आम तौर पर उपयोगकर्ता-प्रदर्शित करने योग्य स्ट्रिंग्स के लिए होते हैं (ताकि आप बाद में अलग-अलग भाषाओं को प्रदान कर सकें)। इस स्थिति में, एक स्थिर स्ट्रिंग को परिभाषित करना जो आपके निर्माण कथन को परिभाषित करता है ठीक है। – Brandon