lastcoder
چهارشنبه 17 اردیبهشت 1393, 21:34 عصر
دوستان سلام
من یک لیست ویو دارم که اطلاعات خودش را از دیتابیس می خونه و نمایش می ده اما مشکل اینجاست که با هر با اجرا این اکتیویتی به ازای هر رکورد داخل دیتابیس یکی دیگه ازش ساخته میشه و توی دیتابیس نشون داده می شه یعنی اگه من توی دیتابیسم دو رکورد داشته باشم دفعه همون دو رکورد رو نشون می ده اما دفعه دوم میشه چهار تا و دفعه بعدی شش تا و...
اینم کد دیتابیسم:
new File(DIR_DATABASE).mkdirs();
dataBase = SQLiteDatabase.openOrCreateDatabase(DIR_DATABASE + "/mytable.sqlite", null);
dataBase.execSQL("CREATE TABLE IF NOT EXISTS mytable (" +
"mytable_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE ," +
"mytable_title TEXT)");
dataBase.execSQL("INSERT INTO mytable (mytable_title) VALUES ('قسمت اول')");
dataBase.execSQL("INSERT INTO mytable (mytable_title) VALUES ('قسمت دوم')");
اینم کد مربوط به کوئری گرفتن از اطلاعات دیتابیس و نمایش در لیست ویو:
ListView lstContent = (ListView) findViewById(R.id.lstContent);
adapter = new AdapterNote(title);
lstContent.setAdapter(adapter);
populateFromDatabase();
adapter.notifyDataSetChanged();
}
private void populateFromDatabase() {
Cursor cursor = G.dataBase.rawQuery("SELECT * FROM mytable", null);
while (cursor.moveToNext()) {
StructNote detail = new StructNote();
detail.title = cursor.getString(cursor.getColumnIndex("mytable_title"));
title.add(detail);
}
cursor.close();
adapter.notifyDataSetChanged();
}
من یک لیست ویو دارم که اطلاعات خودش را از دیتابیس می خونه و نمایش می ده اما مشکل اینجاست که با هر با اجرا این اکتیویتی به ازای هر رکورد داخل دیتابیس یکی دیگه ازش ساخته میشه و توی دیتابیس نشون داده می شه یعنی اگه من توی دیتابیسم دو رکورد داشته باشم دفعه همون دو رکورد رو نشون می ده اما دفعه دوم میشه چهار تا و دفعه بعدی شش تا و...
اینم کد دیتابیسم:
new File(DIR_DATABASE).mkdirs();
dataBase = SQLiteDatabase.openOrCreateDatabase(DIR_DATABASE + "/mytable.sqlite", null);
dataBase.execSQL("CREATE TABLE IF NOT EXISTS mytable (" +
"mytable_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE ," +
"mytable_title TEXT)");
dataBase.execSQL("INSERT INTO mytable (mytable_title) VALUES ('قسمت اول')");
dataBase.execSQL("INSERT INTO mytable (mytable_title) VALUES ('قسمت دوم')");
اینم کد مربوط به کوئری گرفتن از اطلاعات دیتابیس و نمایش در لیست ویو:
ListView lstContent = (ListView) findViewById(R.id.lstContent);
adapter = new AdapterNote(title);
lstContent.setAdapter(adapter);
populateFromDatabase();
adapter.notifyDataSetChanged();
}
private void populateFromDatabase() {
Cursor cursor = G.dataBase.rawQuery("SELECT * FROM mytable", null);
while (cursor.moveToNext()) {
StructNote detail = new StructNote();
detail.title = cursor.getString(cursor.getColumnIndex("mytable_title"));
title.add(detail);
}
cursor.close();
adapter.notifyDataSetChanged();
}