Наполнение Sqlite таблицы данными через массив строк
Здравствуйте. Проблема в том что у меня не получается наполнить таблицу из ресурсов (в strings.xml у меня лежит массив данных)
<item>Barsik</item>
<item>Myrka</item>
<item>Vasiliy</item>
</string-array>
Теперь я не могу его вытянуть в базу данных, у меня выводит только последний элемент (в данном случае "Vasisiliy"). Вот мои класы: DataBaseHelper - тут просто создаем бд
package database.test.zapovnenna_tablici_sql;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import android.widget.TextView;
/**
* Created by Admin on 13.04.2015.
*/
public class DataBaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "cat_database.db";
public static final String TABLE_NAME = "cattable";
public Context fContext;
public DataBaseHelper(Context context) {
super(context ,DATABASE_NAME, null , 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME + " ("
+ "_id INTEGER PRIMARY KEY," + "title TEXT" + ");");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w("TestBase", "Upgrading database from version " + oldVersion
+ " to " + newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
}
И собственно MainActivity
package database.test.zapovnenna_tablici_sql;
import android.app.Activity;
import android.content.ContentValues;
import android.content.res.Resources;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DataBaseHelper db = new DataBaseHelper(this);
SQLiteDatabase sql = db.getWritableDatabase();
ContentValues cv = new ContentValues();
Resources res = db.fContext.getResources();
String[] cattable_records = res.getStringArray(R.array.catList);
for (int i = 0; i < cattable_records.length; i++) {
cv.put("title", cattable_records[i]);
sql.insert(db.TABLE_NAME, null, cv);
}
TextView tv = (TextView) findViewById(R.id.textView);
for (int i = 0; i < cattable_records.length; i++) {
tv.setText(cattable_records[i]);
}
sql.close();
db.close();
Подскажите пожалуйста, в чем проблема вывода? Спасибо!
Источник: Stack Overflow на русском