بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

تغییر وضعیت یک رکورد بولین در دیتا بیس(خواهشا کمک کنید)

مدیریت گفتگو
underomeda 12 سال پیش
آخرین تغییر: 12 سال پیش

من داخل دیتا بیس یه جدول دارم و یه رکورد به اسم فلک برای هر رکورد که مقدار اولیه فلک false هست  میخوام روی دکمه وقتی کلیک شد اول چک کنه آیا وضعیت رکورد flase  یا true اگه ترو بود false  کنه و با پیغام بگه flase شد  و بلعکس .سپس مقادیر true شضده رو در یک لیست نمایش بده خواهش کمک کنید.

نظرات

پاسخ‌ها 3

hosseinAmini 12 سال پیش

وقتی روی دکمه کلیک میشه با SELECT مقداره رکورده مورد نظرت رو بریز تو متغیر بعد یه شرط if بزار که اگه متغیر true بود با استفاده از UPADATE برابر با false کن اگرم false بود true کن.
برای نمایش مقادیره true تو لیست هم، تو اکتیویتی مورد نظر با SELECT اونایی که true هستند رو انتخاب کن و مقادیرش رو توی آرایه بریز و تو adapter از اطلاعات استفاده کن.
اگر آموزش database رو ندیدی یه بار کامل ببینی همه اینکارا رو می تونی انجام بدی

نظرات

underomeda 12 سال پیش
مرسی نمونه کد داری؟
hosseinAmini 12 سال پیش

خواهش می کنم.
این دقیقا برای لیست علاق هاست(جواب اون یکی تاپیکت هم هست)
کلاس adapter:

 imgFavorite.setOnClickListener(new OnClickListener() {

                @Override
                public boolean onLongClick(View arg0) {
                    String imageName = item.ImageName.replace("images/", "");
                    Cursor cursor = G.database.rawQuery("SELECT * FROM images WHERE image_name LIKE '" + imageName + "'", null);
                    while (cursor.moveToNext()) {
                        int imageFav = cursor.getInt(cursor.getColumnIndex("image_fav"));
                        if (imageFav == 0) {
                            G.database.execSQL("UPDATE images SET image_fav=1 WHERE image_name LIKE'" + imageName + "'");
                            imgFavorite.setImageResource(R.drawable.fav_sta_on);
                            Toast.makeText(G.context, "تصویر مورد نظر به علاقه ها اضافه شد", Toast.LENGTH_SHORT).show();
                        } else {
                            G.database.execSQL("UPDATE images SET image_fav=0 WHERE image_name LIKE '" + imageName + "'");
                            imgFavorite.setImageResource(R.drawable.fav_star_off);
                            Toast.makeText(G.context, "تصویر مورد نظر از علاقه ها حذف شد", Toast.LENGTH_SHORT).show();
                        }
                    }

                    return true;
                }
            });
            String imageName = item.ImageName.replace("images/", "");
            Cursor cursor = G.database.rawQuery("SELECT * FROM images WHERE image_name LIKE '" + imageName + "'", null);
            while (cursor.moveToNext()) {
                int imageFav = cursor.getInt(cursor.getColumnIndex("image_fav"));
                if (imageFav == 0) {
                    imgFavorite.setImageResource(R.drawable.fav_star_off);
                } else {
                    imgFavorite.setImageResource(R.drawable.fav_sta_on);
                }
            }

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

 Cursor cursor = G.database.rawQuery("SELECT * FROM images WHERE image_fav=1", null);

        while (cursor.moveToNext()) {
            image2Favorites = new StructImages();
            String image_name = cursor.getString(cursor.getColumnIndex("image_name"));
            image2Favorites.ImageName = "images/" + image_name;
            G.images2.add(image2Favorites);
        }
        adapterFavorites.notifyDataSetChanged();

        cursor.close();

نظرات

underomeda 12 سال پیش
ببخشید متوجه سورس نمیشم میشه سورس خودمو ببینی مشکلش چیه؟
underomeda 12 سال پیش
چرا هربار همه رو منتخب میکنه مشکل داره کد در قسمت while هر بار حلقه اجرا میشه همه رو لایک میکنه
hosseinAmini 12 سال پیش
چون شما با SELECT همه رکودها رو انتخاب میکنید باید با استفاده از WHERE رکورده مخصوص آیتم مورد نظر رو انتخاب کنید. تو مثال اون یکی تاپیک مشخصه منظورم.
underomeda 12 سال پیش
فدایی داری حسین جان
iSheykhi 12 سال پیش

یه سلکت می زنی که بر اساس id در دیتابیس میزان فلگ رو بگیره و بریزه توی یه مقدار بولین

بعد فلگ رو آپدیت می کنی

 Boolean blnFlag =  getFlagContent();
blgFlag = !blnFlag;

("UPDATE tblSample SET Flag=" + blgFlag + " WHERE image_name where id=" + _id)

نظرات

underomeda 12 سال پیش
مرسی با Shareprefrence حل شد !!!!!

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