تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] سؤال حول حفظ قيم المصفوفة في الجافا اندرويد
#1
السلام عليكم
لدي مشكلة بحفظ قيم المصفوفة عند استخدامها داخل دالة الحصول على البيانات من الفايربيس
داخل دالة احضار القيم من الفايربيس يتم اعطاء القيم للمصفوفة بشكل سليم. و لكن عند استدعاء المصفوفة من قبل دالة اخرى تأتي فارغة و ليس بها قيم. ماهو الحل للابقاء على قيم المصفوفة كما تم وضعها عند استدعاءها من قبل دالة أخرى.
هذا هو الكود
اقوم بتعريف المصفوفة في الجلوبال:
كود :
String[] myarray = new String[10]; // as global

ثم اقوم باعطاء المصفوفة قيمها التي احضرها من فايربيس:
كود :
   public void setmyArray()
   {
      // final String[] myarray = new String[10];
       final int[] c = {0};
       em = "q@q.com";
       ps = "123456";
       DatabaseReference ref2 = database.getReference().child(senders_child);
       ref2.addValueEventListener(new ValueEventListener() {
           @SuppressLint("SetTextI18n")
           @Override
           public void onDataChange(@NonNull final DataSnapshot dataSnapshot2) {
               for (DataSnapshot snapshot2 : dataSnapshot2.getChildren()) {
                   final String txt_uid = Objects.requireNonNull(snapshot2.getKey());
                   DatabaseReference ref3 = database.getReference().child(txt_uid).child(child_users);
                   ref3.addValueEventListener(new ValueEventListener() {
                       @SuppressLint("SetTextI18n")
                       @Override
                       public void onDataChange(@NonNull final DataSnapshot dataSnapshot3) {
                           for (DataSnapshot snapshot3 : dataSnapshot3.getChildren()) {
                               String txt_email = Objects.requireNonNull(snapshot3.getValue()).toString();
                               if (txt_email.equals(em + " " + ps)) {
                                   myarray[c[0]] = txt_uid;
                                   c[0]++;
                               }
                           }
                       }

                       @Override
                       public void onCancelled(@NonNull DatabaseError error) {
                       }
                   });
               }
           }
           @Override
           public void onCancelled(@NonNull DatabaseError error) {
           }
       });
   }

ثم اريد دالة اخرى تعود لي بقيم المصفوفة//
public void usemyArray(){setmyArray();Toast.makeText(action_receiver2.this, "0= " + myarray[0],Toast.LENGTH_LONG).show();}
 
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  دورة برمجة تطبيقات اندرويد بلغة جافا Sajad 2 1,060 10-09-19, 02:37 PM
آخر رد: asemshahen5

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم