منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] سؤال حول حفظ قيم المصفوفة في الجافا اندرويد - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم برمجة الهواتف (http://vb4arb.com/vb/forumdisplay.php?fid=208)
+--- قسم : برمجة تطبيقات اندرويد بلغة جافا Java (http://vb4arb.com/vb/forumdisplay.php?fid=221)
+--- الموضوع : [سؤال] سؤال حول حفظ قيم المصفوفة في الجافا اندرويد (/showthread.php?tid=36270)



سؤال حول حفظ قيم المصفوفة في الجافا اندرويد - memouz - 31-08-20

السلام عليكم
لدي مشكلة بحفظ قيم المصفوفة عند استخدامها داخل دالة الحصول على البيانات من الفايربيس
داخل دالة احضار القيم من الفايربيس يتم اعطاء القيم للمصفوفة بشكل سليم. و لكن عند استدعاء المصفوفة من قبل دالة اخرى تأتي فارغة و ليس بها قيم. ماهو الحل للابقاء على قيم المصفوفة كما تم وضعها عند استدعاءها من قبل دالة أخرى.
هذا هو الكود
اقوم بتعريف المصفوفة في الجلوبال:
كود :
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();}