Java Gridview滚动-recycleview

Java Gridview滚动-recycleview,java,android,gridview,Java,Android,Gridview,我正在尝试回收gridview项,因为当前的解决方案可以工作,但是很滞后,并且会消耗资源。然而,我不知道该怎么做。android开发者网站的例子对我不起作用 我的getview方法: public View getView(int position, View paramView, ViewGroup paramViewGroup) { long starttime = System.currentTimeMillis(); View localView = MMWeb.this.ge

我正在尝试回收gridview项,因为当前的解决方案可以工作,但是很滞后,并且会消耗资源。然而,我不知道该怎么做。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; }
有人能给我指出正确的方向吗??如有任何关于如何解决此问题的建议,将不胜感激

只需使用paramView,这是adapterview传递的可重用视图,因为它在屏幕上不再可见

 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;

这就是诀窍。。。然而,这又带来了另一个问题,那就是为什么我在第一次开始使用gridview时就取消了回收,当我滚动时,项目跳转会被随机重新排序。有没有办法解决这个问题?在分配了if语句之外的项之后,问题就解决了。值得看的是@Merlin,我现在正在看这个。。。但是如果我将viewholder类放在getView之后,则无法使viewholder工作。我在标记“class”上出现语法错误,类型错误无效-edit:nooby错误:我编写了viewholder而不是viewholder