मैं रीसायकलव्यू में विज्ञापन दिखाने की कोशिश कर रहा हूं और मैं इसे नीचे दिए गए कोड का उपयोग करके करने में सफल रहा .. समस्या यह है कि प्रत्येक "MspaceBetweenAds" स्थिति में विज्ञापन दिखाई देता है लेकिन इस पर लेख को उस विज्ञापन से बदल दिया गया है जिसे मैंने इसे ठीक करने का प्रयास किया था Mposts.Count + (Mposts.count% MspaceBetweenAds) द्वारा ItemCount() को संशोधित करना, लेकिन मुझे "IndexOutOfBounds" त्रुटि मिल रही है कृपया कोई मदद करें ..

public class AdsView : ListViewHolder
        {
            public AdView mAdView { get; private set; }
            public AdsView(View view) : base(view)
            {
               mAdView = view.FindViewById<AdView>(Resource.Id.AdsCard);
            }
        }

 public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
        {
            RecyclerView.ViewHolder vh = null;
            switch (viewType)
            {
                case 1:
                    View vBig = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.BigCard, parent, false);
                    vh = new MyView(vBig);
                    break;
                case 2:                  
                    View vAds = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.AdsCard, parent, false);
                    vh = new AdsView(vAds);
                    break;
            }
            return vh;
        } 
 public override void OnBindListViewHolder(ListViewHolder holder, int position)
        {
            var MyHolder = holder as MyView;
            switch (holder.ItemViewType)
            {
                case 1:
                    // code to show posts articles here
                    break;
                case 2:                 
                    var AdHolder = holder as AdsView;
                    fnc.AddBannerAd(AdHolder.mAdView);
                    break;
            }
        }
public override int GetItemViewType(int position)
        {
            if (position > 0 && position % mSpaceBetweenAds  == 0) { return 2; }
            else { return 1; }
        }

और यह एक डेमो ऐप है https://drive.google.com/open?id=1Tk3G8dw9nqIffxmEFNGqIg /ए>

0
Abdellah Amri 23 अक्टूबर 2018, 21:45

1 उत्तर

सबसे बढ़िया उत्तर

चूंकि आपके द्वारा पोस्ट किए गए डेमो में तृतीय पक्ष पैकेज है, इसलिए मैं इसे सीधे नहीं चला सकता और आपके लिए डेमो को संशोधित नहीं कर सकता। बहना मेरी समस्या का समाधान है:

त्रुटि के कारण: जिस तरह से आप करते हैं (Mposts.Count + (Mposts.count% MspaceBetweenAds) द्वारा ItemCount() को संशोधित करना, Mposts की वास्तविक लंबाई को नहीं बदल सकता है, परिणामस्वरूप, इसका परिणाम होता है "इंडेक्सऑटऑफबाउंड्स" त्रुटि।

समाधान यदि आप अपने पुनर्चक्रण में विज्ञापन सम्मिलित करना चाहते हैं, तो आपको आइटम और विज्ञापन दोनों दिखाने के लिए न केवल अपने एडॉप्टर को संशोधित करने की आवश्यकता है, बल्कि अपनी लेआउट संसाधन फ़ाइल को संशोधित करने की भी आवश्यकता है, अर्थात आपको निम्नलिखित के लिए डेटा सूची में विज्ञापन डेटा सम्मिलित करना होगा आपका पुनर्चक्रण दृश्य। या आप प्रत्येक [MspaceBetweenAds] आइटम की सूची में केवल एक डुप्लिकेट आइटम जोड़ सकते हैं।

0
AbbyWang - MSFT 25 अक्टूबर 2018, 11:49