مشکل با ساخت لیست علاقه مندی ها مشکل سورس من کجاست؟؟؟(لطفا نگاه کنید)
سورس دکمه برای منتخب کردن ایتم ها:
favorit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Cursor cursor = G.database.rawQuery("SELECT * FROM data ", null);
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("id"));
String title = cursor.getString(cursor.getColumnIndex("title"));
String desc = cursor.getString(cursor.getColumnIndex("desc"));
}
cursor.close();
G.database.execSQL("UPDATE data SET like='yes' WHERE like='no'");
}
});
سورس مربوبط به نمایش لیست علاقه مندی ها:
public class ActivityListFav extends ActivityCycle {
private ListView listfavorit;
public AdapterData adapterfavorit;
StructData favorit = new StructData();
public static ArrayList<StructData> favorits = new ArrayList<StructData>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_fav);
listfavorit = (ListView) findViewById(R.id.lst);
adapterfavorit = new AdapterData(favorits);
favorits.clear();
Cursor cursor = G.database.rawQuery("SELECT * FROM data where like='yes'", null);
while (cursor.moveToNext()) {
StructData sdata = new StructData();
favorit.Get_id = cursor.getInt(cursor.getColumnIndex("id"));
favorit.Get_title = cursor.getString(cursor.getColumnIndex("title"));
favorit.Get_desc = cursor.getString(cursor.getColumnIndex("desc"));
favorits.add(favorit);
}
cursor.close();
adapterfavorit.notifyDataSetChanged();
listfavorit.setAdapter(adapterfavorit);
}
}
مشکل کجاست؟بعد دوستان چطوری میتونم ایتم رو از لیست علاقه مندی ها حذف کنم؟تورو خدا راهنمایی کنید.
کاش یکم بیشتر از برنامت توضیح میدادی.من فرض می گیرم دوتا اکتیویتی داری ActivityMain (که تمام آیتمهارو نمایش میده) و ActivityFavorite که فقط علاقه هارو نشون میده.
ببین یه مشکلت اینه که وقتی از SELECT استفاده کردی مشخص نکردی که کدوم رکورد رو انتخاب کنه. شما به ازای هر آیتم تو لیست یه رکورد دارید دیگه؟ مثلا یه فیلد name داریم که نام هر آیتم توش ذخیره شده. حالا وقتی روی تصویر(یا دکمه) علاقه یه آیتم لمس میشه باید مثل زیر تو adapter نوشت:(تو دیتابیس یه فیلد به نام favorite داریم که مقداره پیش فرضش 0 هست)
favorit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Cursor cursor = G.database.rawQuery("SELECT * FROM data WHERE name='" + item.name + "'", null);
while (cursor.moveToNext()) {
int favorite = cursor.getInt(cursor.getColumnIndex("favorite"));
}
if(favorite == 0){
G.database.execSQL("UPDATE images SET image_fav=1 WHERE image_name LIKE'" + item.name + "'");
}else{
G.database.execSQL("UPDATE images SET image_fav=0 WHERE image_name LIKE '" + item.name + "'");
}
cursor.close();
}
});
تا اینجارو اگه درست انجام بدی با هر بار لمس favorit مقداره favorite دیتابیس اگر 0 باشه 1 میشه و اگر 1 صفر.
اگر درست شد بگو تا بریم سراغ نمایششون تو ActovotyFavorite.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .