我正在尝试回收网格视图项目,因为当前的解决方案有效,但滞后并消耗资源。然而,我想不出该怎么做。android开发人员站点的示例对我不起作用。
我的getview()方法:
public View getView(int position, View paramView, ViewGroup paramViewGroup) {
long starttime = System.currentTimeMillis();
View localView = MMWeb.this.getLayoutInflater().inflate(R.layout.grid_item, null);
TextView localTextView = (TextView)localView.findViewById(2131034115);
ImageView localImageView = (ImageView)localView.findViewById(2131034114);
cItem = items.get(position);
cItem.add(Integer.toString(position));
localTextView.setText(getItemName());
Bitmap localBitmap = d.getImage(cItem.get(3), cItem.get(2));
localImageView.setImageBitmap(localBitmap);
Common.toLog("getView took "+ (System.currentTimeMillis() - starttime) + " ms");
return localView; }有人能给我指个方向吗??任何关于如何解决这个问题的建议都将不胜感激!
发布于 2011-10-05 22:43:43
只需使用paramView,这是您的适配器视图传递的可重用视图,因为它在屏幕上不再可见。
if (paramView == null) {
// inflate a new view into paramView.
paramView = MMWeb.this.getLayoutInflater().inflate(R.layout.grid_item, null);
}
// fill the paramView
TextView localTextView = (TextView)paramView .findViewById(2131034115);
ImageView localImageView = (ImageView)paramView .findViewById(2131034114);
cItem = items.get(position);
cItem.add(Integer.toString(position));
localTextView.setText(getItemName());
Bitmap localBitmap = d.getImage(cItem.get(3), cItem.get(2));
localImageView.setImageBitmap(localBitmap);
return paramView;https://stackoverflow.com/questions/7663015
复制相似问题