अन्य उत्तरों का उत्तर देने के लिए प्रतीत नहीं हुआ कि वास्तव में प्रारंभिक मूल्यों के साथ डेटाबेस को कैसे पॉप्युलेट किया जाए, इसलिए मैं साझा करूंगा कि मैंने इसे यहां कैसे किया।
मूल रूप से आप अपने डेटाबेस कॉलम को एक xml फ़ाइल में स्ट्रिंग सरणी के रूप में सहेजते हैं। मैं सिर्फ एक सरणी दिखाऊंगा लेकिन आप अन्य स्तंभों के लिए और अधिक कर सकते हैं। (हालांकि, आपको सावधान रहना होगा, हालांकि, कई स्तंभों के साथ सरणी क्रम को गड़बड़ नहीं करना है, और इस प्रकार आपकी डेटाबेस पंक्तियों को गड़बड़ाना है।)
एक /res/values/arrays.xml फ़ाइल बनाएं और उसमें सरणी जोड़ें।
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="my_array">
<item>string 1</item>
<item>string 2</item>
<item>string 3</item>
<item>string 4</item>
<item>string 5</item>
</string-array>
</resources>
जब आप अपने सहायक वर्ग में डेटाबेस बनाते हैं तो आप उस सरणी को प्राप्त कर सकते हैं। यहाँ मैंने क्या किया:
private static class DatabaseHelper extends SQLiteOpenHelper {
private final Context fContext;
// constructor
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
fContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME + " ("
+ FIRST_COLUMN + " INTEGER PRIMARY KEY,"
+ SECOND_COLUMN + " TEXT NOT NULL,"
+ THIRD_COLUMN + " INTEGER,"
+ FOURTH_COLUMN + " TEXT NOT NULL"
+ ");");
// Initialize the db with values from my_array.xml
final int DEFAULT_THIRD_COLUMN = 1;
final String DEFAULT_FOURTH_COLUMN = "";
ContentValues values = new ContentValues();
Resources res = fContext.getResources();
String[] myArray = res.getStringArray(R.array.my_array);
for (String item : myArray){
values.put(SECOND_COLUMN, item);
values.put(THIRD_COLUMN, DEFAULT_THIRD_COLUMN);
values.put(FOURTH_COLUMN, DEFAULT_FOURTH_COLUMN);
db.insert(TABLE_NAME, null, values);
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
}
अधिक सहायता के लिए ये लिंक देखें:
- स्ट्रिंग संसाधन - स्ट्रिंग सरणी दस्तावेज़
- एंड्रॉइड:स्ट्रिंग सरणी (SQLite) का उपयोग करके संसाधन फ़ाइल से तालिका भरना
एक और चीज जो मैंने की है वह है डेटाबेस को समय से पहले बनाना और फिर ऐप इंस्टॉल होने पर इसे डेटाबेस फ़ोल्डर में कॉपी करना। यदि आपके पास बड़ी मात्रा में डेटा है और आप इंटरनेट से डेटाबेस डाउनलोड नहीं करना चाहते हैं तो यह बेहतर काम कर सकता है। यदि आप अपने डेटाबेस को कॉपी करना चाहते हैं तो यह उत्तर देखें।