ویرایش اطلاعات ریسایکلرویو و اپدیت ان(حل شد)
به نام خدا
سلام دوستان امیدوارم حالتون خوب باشه .. :)
من یک ریسایکلر ویو دارم که در لایه ای که براش در نظر گرفتم سه تا ایتم داره : 1. نام کتاب 2. نام نویسنده 3. سال انتشار
خب من برای Long Click ایتم های این ریسایکلر وو اومدم و ی کاستوم دیالوگ ساختم که با زدن هرکدوم از ایتم هاش
میاد و اکشنی رو انجام میده ..
و اینکه یکی از ایتم هاش ویرایش هست ... ینی اون سه تا ایتم هرو ویرایش بدیم و بعد ایتم های قبلی کلا به ایتم های جدید که کاربر مینوسه تغییر کنه ..
خب حالا این کد رو چجور برای دکمه ی "ذخیره" که وظیفه ی ذخیرهی اطلاعات جدید و فرستادنش به ریسایکلر ویو رو داره
بنویسم ؟
btn_save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Book book = BookAdapter.bookList.get(position);
book.tittle = edt_tittle.getText().toString();
book.author = edt_author.getText().toString();
book.year = edt_year.getText().toString();
finish();
}
});
دقیقا کدی که استاد برای ویرایش لیست ویو استفاده کردن ، ولی اینجا برای ریسایکلر ووی انجام نمیشد :)
ممنون بچه ها
کامل متوجه سوالتون نشدم ولی به طور کلی میگم :
شما باید اطلاعات کلی تون رو تغییر بدین (Model ـتون رو) (مثلا دیتابیس یا صرفا اون آرایه ای که اطلاعات توشه.) و بعد recyclerView رو متوجه تغییرات کنین. (من خیلی وقته Android کار نکردم ولی فکر کنم با استفاده از method ـ notifySetChange یا همچین چیزی بود.)
دوستان من اینجا مشکلمو با تصویر نشون میدم که بهتر متوجه منظورم بشید :
خب این صفحه اول برنامه ام که ریسایکلر ویو هست و دارای3 تا ایتم هست (بدون تصویر کتاب که ثابت هست)
اسم کتاب ، اسم نویسنده ، سال انتشار :) نیگا کنید :

خب حالا من جوری lonClick براش تعریف کردم که یک دیالوگ باز بشه که چنتا ایتم داره که یکیش " ویرایش "هست !
توجه کنید به تصویر زیر :

خب حالا با زدن ایتم "ویرایش" میر یم یک اکتویتی که ویرایش در اون انجام میشه . مثل تصویر زیر :

خب ، جوری که میبیند و متوجه هستید من تونستم کلا اطلاعات ایتمی که روش کلیک شده رو بیارم توی فیلد های مرتبط که بتونم ویرایشش بدم:)
خب حالا که ویرایششون کردم و بر دکمه ی " ذخیره " زدم میخوام تموم اون تغییراتی که اعمال کردم ، دوباره برگرده بشینه توی صفحه ی اولم همون ریسایکلرویو ، جای استم های مرتبطش :
مثلا اسم کتاب که " داستان دو شهر " هست من تغییرش بدم به کتاب " زمین سبز " مثلا
یا اینکه اسم نویسنده یا سال انتشار ..
بعد ذخیره رو زدم و برگشتم صفحه قبل اون تغییرات اعمل شده باشه ینی جای "داستان دو شهر " شده باشه " زمین سبز" :)
من اینو چجور بنویسم ؟
مرسی بچه ها
بچه ها درست شد
بالاخره باید اینجور بنویسید :
btn_save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Book book = BookAdapter.bookList.get(position);
book.tittle = edt_tittle.getText().toString();
book.author = edt_author.getText().toString();
book.year = edt_year.getText().toString();
finish();
}
});
این همون کدی که برای گرفتن اطلاعات جید و قرار دادانش در فیلد های مرتبط هست
و این کد رو باید متد onResume بنویسیم که من نمینوشتم :
@Override
protected void onResume() {
G.currentActivity = this;
super.onResume();
adapter.notifyDataSetChanged();
}
و اینجوری درست شد . خیلی ممنون از دوستان عزیزم :)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .