ورود

View Full Version : تغییر در لیست ویو با onItemClickListener



ghader62
چهارشنبه 16 بهمن 1392, 17:10 عصر
سلام دوستان

من میخوام که وقتی روی یکی از آیتم های لیست ویو کلیک کردم(onItemClickListener)
بعد از کلیک ، رنگ بکگراند آن آیتم بصورت آنی تغییر کنه
میدونم که برای حذف یک آیتم باید با دستور زیر کار کنم که آن تایم آیتم رو حذف کنه ولی برای عوض کردن محتویات یک آیتم نمیدونم چیکار کنم
adapter.remove(lists.get(pos));
البته میدونم که میشه با استفاده از adapter.notifyDataSetChanged(); هم مانور داد ولی با این دستور، کل لیست از اول نشون داده میشه که من نمیخوام یعنی میخوام فقط آیتم refresh بشه و نه کل لیست
ممنون میشم که دوستان کمکم کنند

harani
چهارشنبه 16 بهمن 1392, 17:59 عصر
اینو ببین


list.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// TODO Auto-generated method stub

((TextView)view).setBackgroundColor(Color.CYAN);

}
});

shahin bahari
چهارشنبه 16 بهمن 1392, 18:00 عصر
توی آداپتر که نوشتید یه متد اضافه کنید برای تغییر رنگ. (یا تو آرایه ای که برای لیست هست رنگش رو تغییر بدید ویا یه متغییر سلکت تعریف کنید و اینجا مقدار بدید که توی getView اگر این متغییر درخواست شده بود رنگش تغییر کنه) بعدش هم notifyDataSetChanged()
تابع notifyDataSetChanged به هیچ وجه باعث ساخته شدن کل لیست نمیشه. اصلا لیست هیچ وقت همش یه جا درست نمیشه!!!! اگر قرار باشه همش باهم لود بشه پس فرقش با یه اسکرول ویو که ایتم ها رو توی کد بهش اضافه میکنیم چیه؟ لیست همیشه فقط اون چند ایتمی که روی صفحه نمایش داده میشه رو میسازه و با اسکرول کردن قبلی رو پاک میکنه و یه سری جدید. پس اصلا نگران استفاده از این متد نباش که اصلا کند نمیکنه.