بدون عنوان
من لیست ویو رو شخصی کاستوم کردم و واسش یه ادپتر درست کردم چطوری میشه وقتی روی دکمه علاقه ها کلیک کردم عکسش تغییر کنه و در هنگام اجرای بعدی همون بگراند تغییر یافته رو داشته باشه .در مثال لیست ویو استاد.
chkfav.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
CheckBox checkBox = (CheckBox) view;
item.done = checkBox.isChecked();
final int like_id = item.id;
cursor = G.database.rawQuery("SELECT * FROM showdata where id=" + like_id + "", null);
while (cursor.moveToNext()) {
like = cursor.getInt(cursor.getColumnIndex("like"));
if (like == 1) {
chkfav.setChecked(true);
} else {
chkfav.setChecked(false);
}
if (item.done && like == 0 && chkfav.isChecked() == true) {
G.database.execSQL("update showdata set like = '1' where id = "
+ like_id);
Toast.makeText(G.context, " به علاقه مندی ها اضافه شد.",
Toast.LENGTH_SHORT).show();
} else {
G.database.execSQL("update showdata set like = '0' where id = " + like_id);
Toast.makeText(G.context, " از علاقه مندی ها حذف شد.",
Toast.LENGTH_SHORT).show();
}
}
cursor.close();
چون دیگران هم جواب رو ببینند اینجا هم میزارم
به این صورته که دوتا آیکن داریم یکی ستاره خاموش یکی هم ستاره روشن. حالا تو adapter بررسی می کردم که اگر آیتم توی جدول علاقه ها بود ستاره روشن رو نشون بده و اگر هم نبود ستاره خاموش رو. برای بررسی کردن از دستور rawquery استفاده می کنیم و با ستور cursor.getCount می فهمیم که آیتم توی جدول علاقه ها هست یا نه، روش کار هم به اینصورت هست که اگر cursor.getCount برابر صفر باشه یعنی آیتم توی جدول وجود نداره واگر ۱ باشه یعنی آیتم وجود داره. پس به همین راحتی می گیم اگر مقدار صفر بود ستاره خاموش رو نشون بده و اکر هم یک بود ستاره روشن رو. وقتی هم روی علاقه کلیک می شد به همین روش چک می کنیم که اگر مقدار برگشتی یک بود یعنی آیتم توی علاقه ها هست پس باید پاکش کنیم و اگر هم صفر بود یعنی آیتم توی علاقه ها نیست پس باید به علاقه ها اضافه کنیم. امیدوارم توضیحات مفید باشه :)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .