اذهب إلى المحتوى

السؤال

نشر

السلام عليكم ورحمة الله وبركاته، في عدة برامج مشابهة لتطبيقي يوجد فيها recyclerview مع اعلان بيني يخرج عندما يضغط المستخدم على الitemview منها ويقوم التطبيق بأظهار الاعلان على كامل الشاشه لعدة ثوان ثم يتحرك الى الصفحة التاليه عندما يغلق المستخدم الاعلان. في تلك التطبيقات هناك خاصية مشابهه لعداد فعندما يضغط المستخدم بشكل عشوائي على الitemviews ثلاث مرات كمثال يقوم بأظهار الاعلان واما اذا ضغط مرة او مرتين لا يظهر الاعلان الكامل - فكيف انا استخدم مثل هذه الخاصية في تطبيقي مع العلم انا استخدم جافا او كوتلن واستخدم Admob لعرض الاعلانات.

Recommended Posts

  • 1
نشر

وعليكم السلام ورحمة الله @عبدالرحمن العنزي4

ما وصفته هو ليس خاصية بمعنى الكلمة بل هي أمور يتم عملها برمجياً من قِبل أصحاب التطبيق ,ويمكن عملها بعدة طرق من خلال إستخدام ال OnClick ميثود حيث نقوم بعمل متغير من نوع int وظيفته سيقوم بجمع كم عدد المرات يلي ضغط المستخدم في على ال itemView بناء على النتيجة نقوم بإظهار نوع الإعلان الذي نريده في حالتك هوinterstitial  ,والأن لإظهار الإعلان نقوم بالتالي مع إستبدال الوحدة الإعلانية بالوحدة الخاصة بك  

 interstitial = new InterstitialAd(mContext);
        interstitial.setAdUnitId("ca-app-pub-*********************");
        AdRequest adRequest = new AdRequest.Builder().build();
        interstitial.loadAd(adRequest);
        interstitial.setAdListener(new AdListener() {
            public void onAdLoaded() {
                if (interstitial.isLoaded()) {
                    interstitial.show();
                }
            }
        });

الأن لنقوم بالأمر كاملاً أولاً نقوم بعمل متغير من نوع int سيحوي عدد المرات التي ضغط فيها المستخدم ال itemView فلنضع إسم المتغير clickCount وقيمته الإفتراضية 0 

int clickCount = 0;

والأن في ال OnClickListener نقوم بزيادة هذا المتغير مرة واحدة عند الضغط أي هكذا 

   itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                  clickCount += 1;
                   
                   
                }
            });

وبعدها نقوم بوضع شرط عند وصول clickCount إلى 3 نقوم بإظهار نوع الإعلان الذي نريد هكذا 

 

 itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                  clickCount += 1;
                   
                   if(clickCount == 3){

               interstitial = new InterstitialAd(mContext);
                      interstitial.setAdUnitId("ca-app-pub-*********************");
                      AdRequest adRequest = new AdRequest.Builder().build();
                      interstitial.loadAd(adRequest);
                      interstitial.setAdListener(new AdListener() {
                          public void onAdLoaded() {
                              if (interstitial.isLoaded()) {
                                  interstitial.show();
                              }
                          }
                      });
					}
                }
            });

وأخيراً نقوم بتغيير قيمة المتغير clickCount إلى 0 عند حصول الشرط الخاص بنا وهو وصول عدد الضغطات إلى 3  ,لكن لماذا !؟ , الجواب هو لأن المتغيير سيبقى يزداد مع كل ضغطة في ال itemView أي سيتعدى العدد 3 وهذا ما لا نريد لذلك لحل المشكلة نقوم بجعله صفر عند حصول الشرط أي هكذا الشكل النهائي (لاحظ clickCount = 0;)

 itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                  clickCount += 1;
                   
                   if(clickCount == 3){

				clickCount = 0;

               interstitial = new InterstitialAd(mContext);
                      interstitial.setAdUnitId("ca-app-pub-*********************");
                      AdRequest adRequest = new AdRequest.Builder().build();
                      interstitial.loadAd(adRequest);
                      interstitial.setAdListener(new AdListener() {
                          public void onAdLoaded() {
                              if (interstitial.isLoaded()) {
                                  interstitial.show();
                              }
                          }
                      });
					}
                }
            });

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...