2017-01-25 16 views
0

リストビューにAdmobに関する問題があります 1.以下のようにリストビューにAdmobを追加できますか?AdMobをリストビューに追加するにはどうすればよいですか?

行1
行2つの
広告
行3
行4つの
広告

iが場合スライドダウン問題がAdapter.ButへのAdMobコードを追加です。 このエラーコード java.lang.ClassCastExceptionが:com.google.android.gms.ads.AdViewは、アダプタにcom.xxxxxxx.aaaaaaa.view.ItemList

このコードgetViewメソッドにキャストすることはできません

if(position % k == 0){ LayoutInflater inflater = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View rowView = inflater.inflate(R.layout.ads_small,null); AdView adView = (AdView)rowView.findViewById(R.id.adView); AdRequest adRequest = new AdRequest.Builder().build(); adView.loadAd(adRequest); return adView; } else { final ItemList cardNews; if (convertView != null) { cardNews = (ItemList) convertView; } else { cardNews = new ItemList(parent.getContext()); } cardNews.setTvTitle(dao.get(position).getTitle()); return cardNews; }

答えて

1

はい、adViewItemListとして再利用しようとしているため、あなたのコードは確実にClassCastExceptionをスローします。

if(position % k == 0){ 
    return adView; // Now convert view is Adview 
} else { 
     if (convertView != null) { /// Yes it valid because AdView is not null 
     cardNews = (ItemList) convertView; // This is invalid, 
              // AdView can't be ItemList 
    } 
} 

なぜこの問題がスクロールになるのですか?その答えは、画面上にすでに描画されているスクロールのビューを再利用しようとするためです。

解決策は何ですか? - ソリューションは簡単です。必要に応じてViewTypeを使用できます。

関連する問題