القائمة الرئيسية

الصفحات

شرح استخدام SharedPreferences مع gson لتخزين البيانات بالعربي

 

شرح استخدام SharedPreferences مع gson لتخزين البيانات بالعربي

شرح استخدام SharedPreferences مع gson لتخزين البيانات على جهازك بالعربي


في المقال السابق تعرفنا على كيفية التعامل مع local data base وكيف تستطيع تخزين البيانات الخاصه بك بشكل offline وفي هذا المقال نكمل معكم على الدرس السابق حيث عندما انشأنا class جديد لنضع فيه البيانات التي نستطيع استخدامها في اي مكان كان الموضوع ممل قليلا وهو عندما نريد عمل اي تغيير نحتاج لعمل get and set و تعريف لل shared , وفي هذه المقالة سوف نحل المشكلة بإذن الله عن طريق مكتبة gson والتي سوف تخزن لنا الكلمات في مجموعة لكي نستخدمها في اي مكان وبعد ان نجمع الكلمات داخل gson سوف نخزنها في shared .


متابعو موقع ومدونة Geeoders ، مرحبًا بكل المهتمين بمجال تطوير تطبيقات Android. أهلا بكم من جديد من دروس تطوير تطبيقات الهواتف الذكية وتحسين شكلها. كما تعلم ، نقدم لك أكواد وشروحات مخصصة لبرنامج Android Studio. لا يقتصر الأمر على تطوير تطبيقات Android ، ولكن يتوفر العديد من الدروس على موقعنا. برامج مفيدة ولغات برمجة مختلفة. في بداية أي دورة تدريبية على موقعنا ، نقدم البرمجة للأطفال مجانًا وللكبار أيضًا. نقدم لك شرحًا بسيطًا جدًا أو مقدمة للغة التي نقدمها لكم واللغة التي يهتم بها كثيرًا في الوقت الحالي ، وهي لغة Java لأننا نستخدمها في دروس تطوير تطبيقات الهواتف الذكية ، لذا حاول التركيز عليها والاهتمام بها ، ويمكنك برمجة تطبيقات سطح المكتب من خلال Java أو Python ، وهناك دروس Python باللغة العربية على موقعنا أيضًا.


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


مكتبة gson


اول خطوة يجب عليك ان تقوم باضافة المكتبه التاليه داخل build gradle والطريق بسيطة جدا هي ان تقوم بنسخ الاكواد الموجوده في داخلها وبعدها الصق الكود ومن ثم انقر على sync now ليتم تثبيت المكتبة في الاندرويد ستوديو لديك . 


dependencies {
  implementation 'com.google.code.gson:gson:2.8.7'
}


خطوات خطوات حفظ البيانات في SharedPreferences باستخدام gson


قم بإنشاء كلاس جديد باسم SharedUser وضع به المتغيرات التي تريد استعمالها جميعا في هذة الحالة قمت باستعمال الاسم و الاسم الاخير و رقم الهاتف يمكنك التقليل او التزويد على حسب ما تريد وقم بعمل لهم getter and setter و constructor كل هذا عن طريق النقر على alt + insert وقم بعمل ما تريد لتصبح على الشكل الموجود في الصورة .



SharedUser.class code


String name,lasname,phone;

    public SharedUser(String name, String lasname, String phone) {
        this.name = name;
        this.lasname = lasname;
        this.phone = phone;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLasname() {
        return lasname;
    }

    public void setLasname(String lasname) {
        this.lasname = lasname;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
    


الان ارجع الى MainActivity.class وقم بكتابة الاكواد التاليه وهي بكل بساطة اننا عرفنا كلاس SharedUser وقمنا بعمل البيانات الخاصه به وقم بعدها بتعريف Gson كما هو واضح بالصورة بعدها سوف نقوم بتمرير البيانات داخل gson وذلك عن طريق اننا سوف نقوم بعمل String ونقوم بتسميته باي اسم وبعدها سوف نقوم بتمرير object الذي حصلنا عليه من الshareduser ونقوم بطباعته في logi لنرى شكلة ونرى كيف تعمل مكتبة gson , بعد ذلك نريد عرض بيانات محدده بمعنى نريد عرض ما نريد مثلا الاسم الاول و الاخير و رقم الهاتف كل واحده لوحدها لذلك سوف نقوم بتعريف SharedUser وناخذ منه object اخر ونقوم بعمل تعريق gson ولكن بدل من tojson سوف تكون fromjson وذلك لاننا الحصول على البيانات وبعدها نمرر له object الذي يحمل الاسماء و الكلاس الذي يوجد به البيانات وبعدها في logi نحدد ما نريد الحصول عليه كما هو واضح بالصورة 



MainActivity.class


 private void shareduserdata() {
        SharedUser sharedUser = new SharedUser("gee","coders",".com");
        Gson gson = new Gson();

        String usergson = gson.toJson(sharedUser);
        Log.i(TAG, "shareduserdata: "+usergson);
        SharedUser newUser = gson.fromJson(usergson,SharedUser.class);
        Log.i(TAG, "shareduserdata: "+newUser.getName());
        Log.i(TAG, "shareduserdata: "+newUser.getLasname());
        Log.i(TAG, "shareduserdata: "+newUser.getPhone());
    }
    


الان قم بعمل كلاس اخر باسم SharedUserData وسوف يكون هذا الكلاس مخصص لحفظ البيانات وسوف نقوم بتخزين البيانات بداخله كما تعلمنا في الدرس السابق , سوف نحتاج لعمل 2 key لذلك بدلا من تكرارهم يمكن ان نجعلهم global وبعدها shared و gson بعد ذلك قم بعمل constructor ومرر بداخله Context وهو مخصص لمعرفة حالة التطبيق او حالة العنصر الذي سوف يعمل عليه ونقوم بكتابة التعريف كما هو بالصورة ولا تنسى تعريف Gson, بعدها في setuser سوف نمرر البيانات التي توجد في كلاس SharedUser وناخذ منة object باسم user وتخزين البيانات وقم بعدها بعمل gson.toJson وتمرير له الاوبجكت الذي يحمل البيانات وبعدها تعريف Preferences لارسال البيانات , بعد ذلك انتقل الى عمل get واكتب نفس مافي الصورة وهي بكل اختصار جعل الاسماء جاهزة للاستعمال عندما يتم استدعاء key الخاص بهم .



SharedUserData.class code


private final String SHARED_NAME = "myuserData";
    private final String USER = "user";
    private SharedPreferences preferences;
    private Gson gson;

    public SharedUserData(Context context) {
        preferences = context.getSharedPreferences(SHARED_NAME,context.MODE_PRIVATE);
        gson= new Gson();
    }

    public void setUser(SharedUser user){
        String usergson = gson.toJson(user);
        preferences.edit().putString(USER,usergson).apply();
    }

    public SharedUser getsharedUser() {
        String userGson = preferences.getString(USER,"");
        SharedUser user = gson.fromJson(userGson,SharedUser.class);
       return user;
    }
    


اخر خطوة وهي الرجوع الى MainActivity وعمل setuser واستقبال البيانات وقم بعمل logi لطباعة المتغيرات في logcat عن طريق get واسم العنصر الذي تريدة وكل شيئ واضح بالصور , الامر بسيط وغير معقد حاول قراءة المقالة والتطبيق عليها لكي ترسخ الفكرة لديك لان الاكواد البرميجة سريعا ما يتم نسيانها .



MainActivity.class


private void shareduserdata() {

        SharedUser sharedUser = new SharedUser("gee","coders",".com");
        SharedUserData sharedUserData = new SharedUserData(MainActivity.this);
        sharedUserData.setUser(sharedUser);
        Log.i(TAG, "shareduserdata: "+sharedUserData.getsharedUser().getName());
        Log.i(TAG, "shareduserdata: "+sharedUserData.getsharedUser().getLasname());
        Log.i(TAG, "shareduserdata: "+sharedUserData.getsharedUser().getName());
        


الكود كامل على github


ولمزيد من الاكواد في اندرويد ستوديو لا تتردد في البحث في موقعنا عن ما تبحث عنه واذا لم تجد اترك لنا تعليق لنقوم بتوفيره لكم في الايام المقبلة .


التنقل السريع