نقل البيانات والصور من صفحة للاخرى اثناء الصغط على الrecyclerview

نقل البيانات والصور من صفحة للاخرى اثناء الصغط على الrecyclerview


نقل البيانات والصور من صفحة للاخرى اثناء الصغط على الrecyclerview

اثناء عمل recyclerview تحتاج الى عمل نقل البيانات اثناء الضغط بمعنى تخيل معي اذا كنت تقوم بتصميم تطبيق لمتجر في طبيعة الحال يظهر صورة المنتج وتفاصيل عنه مثل الاسم والسعر وتريد عند النقر على المنتج يرجع باقي التفاصيل كامله مع التفاصيل الظاهره في الشاشة الرئيسيه ولذا نستخدم putExtra والتي قد سبق وشرحنا فكرتها من قبل دروس سابقة وهي تقوم بنقل الشيئ من مكان الى الاخر عن طريق key , value .


أنظمة التشغيل Android و iOS هي الأكثر شيوعًا والأكثر استخدامًا في العالم بين المستخدمين بشكل كبير جدا ، في حين أن البقية ، مثل Windows Phone وغيرها ، لديها عدد قليل من المستخدمين. وعلى سبيل المثال ، يتحكم نظام التشغيل Android في حوالي 75٪ من الاجهزة الذكية الموجوده السوق و لأنظمة التشغيل وبرمجة تطبيقات الهواتف الذكية. من ناحية أخرى ، يمثل نظام iOS 20٪ أو أكثر إلى حد ما من جميع أنظمة التشغيل ، مقارنة بـ 5٪ فقط من جميع أنظمة التشغيل مجتمعة. بالإضافة إلى ذلك ، في الولايات المتحدة ، يستخدم نظام iOS حوالي 55 بالمائة من المستخدمين ، مقارنة بنسبة 45 بالمائة لنظام Android ، وهذا يدل على ضخامة المستخديمن لدى هذة الانظمة في هواتف المستخدمين .


ستحتاج إلى معرفة لغة برمجة إذا كنت تريد إنشاء تطبيق جوال . ومع ذلك ، قد يكون اتخاذ قرار بشأن اللغة (أو اللغات) المثالية لمشروع ما أمرًا صعبًا. هناك الكثير من الخيارات ، وفي هذا الموقع نقدم لك الكثير من الشروحات والدروس في تطوير تطبيقات الاندرويد وغيرها من الاجهزة بشكل مجاني بالكامل ، وهذة المقالة ماهي الا جزء من تطوير التطبيقات ، كل هذا يتوقف على الهيكل الذي تقوم ببنائه. قد لا يطلب مطور الهاتف جميع الوظائف المتوفرة بلغة برمجة لتطبيقات معينة. في بعض الحالات ، قد يتطلب تطبيق واحد العديد من اللغات.


الكلاس الذي يحتوي على البيانات

عليك بجعل هذا الكلاس implements Serializable لكي يتمكن من نقل البيانات اثناء الضغط عليها .


الكلاس الذي يحتوي على البيانات

Data.class


public class Data_category_item implements Serializable {

    String name , price ;
    int image;

    public Data_category_item(String name, String price, int image) {
        this.name = name;
        this.price = price;
        this.image = image;
    }

    public String getName() {
        return name;
    }

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

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public int getImage() {
        return image;
    }

    public void setImage(int image) {
        this.image = image;
    }
}


نقل البيانات اثناء الضغط عليها في recyclerview

في هذا الكلاس يقوم المستخدم بالنقر على العناصر وعند النقر عليها يتم نقل البيانات من مكان الى الاخر بمعنى يتم نقل المستخدم من صفحة الى الاخرى مع الاحتفاظ بالبيانات لكي يتم نقلها ايضا الى الصفحة الاخرى .


نقل البيانات اثناء الضغط عليها في recyclerview


####  Sender.class ####


    @Override
    public void onclick(int position) {
        Intent intent = new Intent(requireActivity() , ProductActivity.class);
        intent.putExtra("book_2", categories.get(position).getName());

        startActivity(intent);
    }
    


استقبال البيانات عند الضغط عليها في recyclerview

عند نقل البيانات نحتاج الى عمل putExtra بمفتاح والبيانات بالنسبة للمفتاح كان book_2 وبعدها نقلنا الاسم ولاستقبالها في المكان الاخر عليك بعمل getIntent وبعدها getString اذا كان نص وتكتب المفتاح الذي ارسلت به واذا كانت صورة يكون getInt وايضا يكتب المفتاح لاستقبال الصورة ولكن عليك بارسالها الاول وهذا كل ما في الامر .


استقبال البيانات عند الضغط عليها في recyclerview


### receiver.class ###


protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  binding= DataBindingUtil.setContentView(this, R.layout.activity_product);


  Bundle extras = getIntent().getExtras();
  if (extras != null) {
      String value = extras.getString("book_2");
      // نقل الصور
      int img = extras.getInt("book_images");
      binding.tvItem.setText(value);
      binding.image_Item.setImageResource(img);
  }
}


فيديو الشرح



لمزيد من المقالات والدروس في اندرويد ستوديو يمكنك تصفح الموقع لتجد بحر من الاكواد والشروحات .

تعليقات