نوشتن برنامه با امکانات علاقه مندی و...
سلام دوستان .
خسته نباشید.
راستش من بعد از این همه مدت کار با اندروید و نوشتن برنامه های مختلف
حتی نوشتن برنامه های تحت سرور تقریبا قوی و سخت هنوز کار با SQLite رو یاد نگرفتم :دی نمیتونم وصلش کنم به لیست ویو و امکاناتی مثل لاقه مندی بهش اضافه کنم .
اگه میشه کمک کنید من اینو یاد بگیرم .
ممنون :دی
برای ساخت دیتابیس یک کلاس میسازید و از SQLiteOpenHelper اکستندز میکنید .
شما یه کلاس هم بسازید برای تمیز تر شدن کار ، که شامل ساختمان داده ای از اون شئئ هست که میخواید بسازید و براش کانستراکتور تعریف می کنید :
public class WishList {
private int id_item;
public WishList(){
}
public WishList(int id_item){
this.setIdPlace(id_item);
}
public int getIdItem() {
return id_item;
}
public void setIdItem(int id_item) {
this.id_item = id_item;
}
}
داخل کلاس دیتابیس یک سری متد رو داخلش باید آوراید کنید .
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE_WISHLIST = "CREATE TABLE IF NOT EXISTS "
+ "table_wishList" + "("
+ "id_item" + " INTEGER" + ")";
db.execSQL(CREATE_TABLE_WISHLIST);
}
داخل این متد دستور ساخت تیبل رو میدید مثل دستورات php میمونه موقع ساخت دیتابیس من یک نمونه براتون نوشتم.
این متد هم برای افزودن آیتم به تیبل هست .
public void addWishList(WishList wishList) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("id_item", wishList.getIdItem());
db.insert("table_wishList", null, values);
db.close();
}
این متد هم برای حذف از تیبل استفاده کنید :
public void deleteWishPlace(int id_item) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete("table_wishList", "id_item"+ " = ?",
new String[] { String.valueOf(id_item) });
db.close();
}
توجه داشته باشید بهتر هس به جای استفاده از استرینگ به صورت مستقیم کانستی در کلاس براش بسازید و از اون استفاده کنید به طور مسال به جای نوشتن "table_wishList" یک فیلد کانست بسازید و این مقدار رو بهش بدید و از اون استفاده کنید . نمونه ساخت کانست هم پایین هست :
private static final String TABLE_WISHLIST = "table_wishList";
برای افزودن اون آیتم به تیبل یه دکمه تعریف میکنید که هروقت روش کلیک شد چک میکنه اگر در تیبل وجود داشت حذف میکنه و در غیر این صورت اضافه میکنه .
برای اینکه چک کنید آیا این رکورد در تیبل هست یا نه از این متد در کلاس دیتابیس استفاده کنید ، داخل این متد به شما اگر وجود داشته باشه مقدار برمیگردونه و در غیر این صورت نال بر میگرده :
public WishList getWishPlace(int id_item){
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query("table_wishList", new String[] { "id_item"}, "id_item"+ "=?",
new String[] { String.valueOf(id_item) },
null, null, null, null);
if(cursor != null && cursor.getCount() != 0){
cursor.moveToFirst();
WishList wishList = new WishList(cursor.getInt(0));
return wishList;
}
return null;
}
برای استفاده از این کد های اضافه کردن ، حذف و خواندن ریکورد داخل تیبل از کد های زیر در اکتیویتی استفاده کنید من اسم کلاس دیتابیسم رو DBHelper گذاشتم :
DBHelper db = new DBHelper(this);
WishList wishlist = db.getWishPlace(id_item);
if(wishlist != null){
db.deleteWishPlace(id_item);
Toast.makeText(G.context, R.string.delete_wish, Toast.LENGTH_SHORT).show();
}else {
db.addWishList(new WishList(id_item));
Toast.makeText(G.context, R.string.add_wish, Toast.LENGTH_SHORT).show();
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .