آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

نوشتن برنامه با امکانات علاقه مندی و...

Mhaghshenas  11 سال پیش  11 سال پیش
+7 0

سلام دوستان .

خسته نباشید.

راستش من بعد از این همه مدت کار با اندروید و نوشتن برنامه های مختلف

حتی نوشتن برنامه های تحت سرور تقریبا قوی و سخت هنوز کار با SQLite رو یاد نگرفتم :دی نمیتونم وصلش کنم به لیست ویو و امکاناتی مثل لاقه مندی بهش اضافه کنم .

اگه میشه کمک کنید من اینو یاد بگیرم .

ممنون :دی

+2 0
سلام دوست عزیز ؛ استاد توی پروژه Notes وصل کردن دیتابیس به ListView رو کاملا به صورت عملی انجام دادن ! و برای ساخت علاقه مندی ها و .... خیلی راحت یه دکمه میذاری و یه فیلد جدید توی دیتابیس به اسم Fav اضافه می کنی که مقدارش به صورت پیشفرض 0 هست ! کاربر وقتی بر روی دکمه کلیک کرد مقدار Fav میشه 1 ! و توی صفحه علاقه مندی ها میگی فقط اون هایی که مقدار Favشون 1 هست رو نشون بده ! (11 سال پیش)
0 0
پروژه Notes بانک اطلاعاتیش تحت سرور هست ! من نمی خوام تحت سرور باشه (11 سال پیش)
0 0
آقای salah-kurdخوب درسته با زدن کلید favمقدار یک میشه تو کدولی برای اعمال تغییر تو دیتابیس از دستورآپدیت استفاده کنیم ؟که مقدارfavتوجدول تغییرکنه؟که بعد بتونیم علاقهمندیها رو با یه selectنشون بدیم؟ (11 سال پیش)
0 0
بله درسته ؛ ما قبلا فیلد Fav رو توی دیتابیس ساختیم و نیازی به ساختن دوباره اون نداریم ! پس از دستور Update استفاده می کنیم و بعد اون هایی که مقدار Favشون 1 هست رو از دیتابیس Select می کنیم. (11 سال پیش)
0 0
مرسی ، یکی ازدوستان اصلا آپدیت استفاده نکرده بود!.توکدش دستورputاستفاده کرده بود!کاربردش چیه؟من با کد خودم وآپدیت انجام میدم به نتیجه نرسیدم دوباره میپرسم. (11 سال پیش)
0 0
کسی کد آماده نداره که خودش نوشته باشه ؟ منظورم اینه که با استفاده از آموزش استاد کد نوشته باشه (11 سال پیش)
0 0
بهترین راه این هست شما یه دکمه مشخص کنید هر وقت روش کلیک شد مقدار id اون محتوی رو توی یه دیتابیس ذخیره کنه و براش این شرط رو هم در نظر بگیرید که اگر قبلا این id وجود داشت delete کنه و در غیر این صورت add کنه (11 سال پیش)
0 0
از دوستان کسی پروژه آماده نداره در اختیارمون قرار بده روش کار کنیم ؟ (11 سال پیش)
0 0
شما بگو دقیقا مشکلت با کدوم قسمتش هست دیتابیس رو ساختید ؟ (11 سال پیش)
0 0
مشکل من استفاده از دیتابیس آماده و وصل کردنش به لیست ویو هست (11 سال پیش)
 برای این سوال 1 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
کاشی زاده  11 سال پیش
+7 0

 پاسخ صحیح

برای ساخت دیتابیس یک کلاس میسازید و از 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(); }

 

+3 0
خوب مثل اینکه مشکل حل شد و کد ها اومده این نحوه ساخت دیتابیس بهمراه تیبل با قابلیت افزودن حذف و خواندن اطلاعات داخل تیبل بود . من الان دیدم شوا نوشتید که میخوای از دیتابیس آماده استفاده کنید . ینی میخواین یه فایل آماده رو روی برنامه بریزید و از اون بخونید ؟ (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .