شرح استخدام الـ Room في حذف العناصر من ArraryList في اندرويد ستوديو

 

شرح استخدام الـ Room في حذف العناصر من ArraryList في اندرويد ستوديو

android studio local data base #8 : شرح استخدام الـ Room في حذف العناصر من ArraryList في اندرويد ستوديو


في الدرس السابق تعرفنا على كيفية عمل insert و get للdata من array واضافتها داخل room database وفي هذا المقال سوف نكمل على الدرس السابق ونشرح لكم كيفيبة عمل delete للعناصر كامله والامر بسيط جدا ويمكنك عمله باكثر من طريقة لكي تفهم الفكرة بصورة افضل كما شرحنا لكم الاضافة .


متابعي موقع ومدونة جي كودرس مرحبا بكل مهتم في مجال تطوير تطبيقات الاندرويد مرحبا بكم من جديد من دروس تطوير تطبيقات الهواتف الذكية وتحسين شكلها كما تعلمون اننا نقدم لكم اكواد وشروحات مخصصه لبرنامج اندرويد ستوديو والامر لا يقتصر على تطوير تطبيقات الاندرويد بل يتوفر في موقعنا كثير من الدروس البرمجية المفيدة ولغات البرمجة المختلفة وفي بداية اي كورس في موقعنا نقدم تعليم البرمجة للاطفال مجانا و للكبار ايضا فنحن نقدم لكم شرح بسيط جدا او مدخل للغة واكثر لغة نهتم بها حاليا وهي لغة جافا لاننا في دروس تطوير تطبيقات الهواتف الذكية نستخدمها لذلك حاول ان تركز عليها وتهتم بها , ويمكنك برمجة تطبيقات سطح المكتب من خلال الجافا او البايثون ويوجد دروس بايثون بالعربي في موقعنا ايضا .


العمل في مجال تطوير تطبيقات الاندرويد او في شركة تطوير تطبيقات الجوال ليس بالامر المستحيل ولا الصعب فهنالك كثيرون يحققون نجاح في علوم البرمجة سواء تطوير تطبيقات الموبايل و حتى تطوير المواقع او  برمجة تطبيقات سطح المكتب او غيره من البرمجة فهذا المجال بحر وموسوعة كبيرة ويوجد من هم دون ال16 سنه يعملون في مجال البرمجة " اعمال حرة " على الانترنت ويحققون نجاحات عاليه ومبالغ مالية محترمة وقد يتطور الامر معه ويتعمق في اكثر من لغة ويعمل في اكثر من مجال وهذا امر جيد فمجال تطوير تطبيقات الهواتف الذكية و تصميم مواقع الويب يتم البحث عليهم بكثرة على الانترنت يمكنك في البدء بتعلم اي منهم والتطور فيه ولا تصتصعب الامر ابدء وتوكل على الله وسوف تحب المجال بإذن الله .


كيفية عمل delete من الروم في android studio


اولا انتقل الى NoteDAO وتاكد من انك قمت بعمل Delete وهو من نوع Completable لاننا نستخدم rx اذا لم تكن تستخدمها اتركه void كما وضعناه سابقا .


كيفية عمل delete من الروم في android studio

NoteDAO.interface


    @Delete
    Completable deletenote(NoteEntity note);
    


الخطوة التالية هي الانتقال الى ملف RecyclerAdapter وقم بعمل methode جديد باسم delete واجعله تحتوي على List<NoteEntity> delete حيث ان هذة الميثود ستكون مسؤوله عن عملية الحذف وضع بداخل امر delete.clear(); وهي انك تخبر الادبتر ان يقوم بعملية الحذف و notifyDataSetChanged لكي يقوم بمواكبة التحديثات التي تحصل باستمرار .


شرح استخدام الـ Room في حذف العناصر من ArraryList في اندرويد ستوديو

RecyclerAdapter.class


    public void delete(List<NoteEntity> delete) {
        this.postsList = delete;
        delete.clear();
        notifyDataSetChanged();
    }
    


الان ارجع الى MainActivity وقم بتعريف الزر الخاص بالحذف وقم بعمل له setOnClickListene وبعدها قم بكتابة تعريف rx كما تعلمنا سابقا وبعدها داخل onComplete قم بجعل الادبتر يحذف العناصر الموجودة في الليست وهنا الليست كان اسمها entities واخيرا قم بعمل notifyDataSetChanged لكي يقوم بعمل تحديث مواكبة للتغيرات 


شرح استخدام الـ Room في حذف العناصر من ArraryList في اندرويد ستوديو

MainActivity.class


        deldata.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                database.noteDAO().deleteallnote()
                        .subscribeOn(Schedulers.computation())
                        .observeOn(AndroidSchedulers.mainThread())
                        .subscribe(new CompletableObserver() {
                            @Override
                            public void onSubscribe(@NonNull Disposable d) {
                            }

                            @Override
                            public void onComplete() {
                                adapter.delete(entities);
                                adapter.notifyDataSetChanged();
                            }

                            @Override
                            public void onError(@NonNull Throwable e) {
                            }
                        });
            }
            


ما سبق كانت اول طريقة وهي الافضل تحديدا والان سوف نشرح لكم الطريقة الاخرى وهي ايضا بسيطة ولكن لا ننصح بها وهي ان تجعل البيانات في ميثود كما فعلنا في الدرس السابق وتقوم باستدعاءة في deldata.setOnClickListener وترسل له الادبتر فقط استخدم الطريقة التي تعجبك بالمناسبة في هذة الطريقة لن تحتاج بعمل ما قمنا به في الادبتر ولكن الاولى افضل من هذة وفي النهاية الامر يرجع لك .


شرح استخدام الـ Room في حذف العناصر من ArraryList في اندرويد ستوديو

MainActivity.class


        deldata.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                database.noteDAO().deleteallnote()
                        .subscribeOn(Schedulers.computation())
                        .observeOn(AndroidSchedulers.mainThread())
                        .subscribe(new CompletableObserver() {
                            @Override
                            public void onSubscribe(@NonNull Disposable d) {
                            }

                            @Override
                            public void onComplete() {
                                getdata(adapter);
                                adapter.notifyDataSetChanged();
                            }

                            @Override
                            public void onError(@NonNull Throwable e) {
                            }
                        });
            }
        });
    }

    private void getdata(RecyclerAdapter adapter) {
            database.noteDAO().getnote()
                    .subscribeOn(Schedulers.computation())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new SingleObserver<List<NoteEntity>>() {
                        @Override
                        public void onSubscribe(Disposable d) {
                        }

                        @Override
                        public void onSuccess(List<NoteEntity> posts) {
                            adapter.setPostsList(posts);
                            adapter.notifyDataSetChanged();
                        }

                        @Override
                        public void onError(Throwable e) {
                        }
                    });
    }
    


لمزيد من المقالات البرمجية يمكنكم مشاهدة باقي المقالات على الموقع

تعليقات