PDA

View Full Version : تغییر بگراند یک عکس و ذخیزه آن



android69
دوشنبه 31 شهریور 1393, 09:03 صبح
سلام من توی ادپترم یه دکمه واسه علاقه مندی ها دارم.میخوام وقتی ایتمی رو منتخب کنم علاوه براینکه عکس دکمه علاقه مندی ها عوض شه در اجرای بعدی برنامه همون حالت منتخب شده خودش رو ذخیزه کنه ممنون میشم کمک کنید.
در ضمن من ازچکباکس برای این کار استفاده کردم.





public class Adapter extends ArrayAdapter<Data> {


public static Cursor cursor;
public static int like;




public Adapter(ArrayList<Data> array) {
super(G.context, R.layout.data, array);
}




public static class ViewHolder {


public ViewGroup layoutRoot;
public TextView name;
public CheckBox chkfav;
public ImageView imgshare;




public ViewHolder(View view) {
layoutRoot = (ViewGroup) view.findViewById(R.id.Adapter);
name = (TextView) view.findViewById(R.id.txt_name);
chkfav = (CheckBox) view.findViewById(R.id.chkfav);


}




public void fill(final ArrayAdapter<Data> adapter, final Data item, final int position) {
// final int my_id = item.id;
name.setText(item.name);
chkfav.setChecked(item.done);


layoutRoot.setOnClickListener(new OnClickListener() {


@Override
public void onClick(View v) {
G.SelectShowData = item;
Intent intent = new Intent(G.CurrentActivity, ActivityShow.class);
G.CurrentActivity.startActivity(intent);


}


});
chkfav.setOnClickListener(new OnClickListener() {


@Override
public void onClick(View view) {
CheckBox checkBox = (CheckBox) view;
item.done = checkBox.isChecked();
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) {
checkBox.setChecked(true);


}
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);


// img_fav.setImageResource(R.drawable.h_my_love);
Toast.makeText(G.context, " از علاقه مندی ها حذف شد.",
Toast.LENGTH_SHORT).show();


}


}
}
});
cursor.close();


}
}








@Override
public View getView(int position, View convertView, ViewGroup parent) {


ViewHolder holder;


StructShowData item = getItem(position);


if (convertView == null) {
convertView = G.inflater.inflate(R.layout.data, parent, false);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}

holder.fill(this, item, position);
return convertView;
}
}

farhadfery
دوشنبه 31 شهریور 1393, 18:55 عصر
شما در متد getview باید به holder.chkfav مقدار بدید. نیاز به ریکوست از دیتابیس نیست. داده ها را که شما در arralist از نوع کلاس Data در سازنده گرفتید.