我想在ListView中使用广告(Google SDK)构建新闻应用。我不知道有多少广告,因为我通过Rest API接收内容。每个广告都有不同的AdUnitID。
我已经尝试过这个解决方案:
有没有人有解决方案来解决这个问题?
由于
答案 0 :(得分:1)
通常我所做的是创建一个实现ListItemInterface的基类ListItem。然后,我将所有ListView项目(在您的情况下,包括新闻和广告包装器)扩展ListItem。然后,这些项目即时生成自己的视图。
当您从REST获取新闻和广告时,请创建新的新闻或广告对象,将其添加到您的列表并调用adapater.notifyDataSetChanged()。
如果您认为此解决方案对您有用但有更多问题,我们很乐意澄清(我在使用基于Feed的应用程序时使用了类似的东西)。
public abstract class ListItem implements ListViewInterface{}
public interface ListItemInterface{
View getView(Context context, LayoutInflater inflater);
}
public class ListItemAdapter extends BaseAdapter {
Context context;
List<ListItem> listItems;
public ListItemAdapter(Context context, List<ListItem> listItems){
this.context = context;
this.listItems = listItems;
}
...
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ListItem item = listItems.get(i);
return item.getView(context, LayoutInflater.from(context));
}
}
答案 1 :(得分:1)
问题不在于ViewTypes数量多,问题是AdViews消耗了大量CPU。
我使用了这种解决方法:http://pzoleeblogen.wordpress.com/2014/07/08/android-how-to-solve-adview-cpu-consuming/除了Android 4.4.x之外,所有设备都能正常运行