Android: Implementing ViewHolder

2022-09-03 00:19:48

我正在尝试在我的Android应用程序中实现ViewHolder,但我不断得到ViewHolder无法解析为类型,没有任何导入建议。有人知道如何解决这个问题吗?


答案 1

这是因为 a 不是来自 Android SDK 的类,而是你自己制作的。根据我能找到的内容,a是一种将视图(通常在ListView中的每行)存储更大区域的实现,因此它是一种帮助程序类和缓存机制。这是我在Android Developers上找到的一个例子,说明a将包含什么。ViewHolderViewHolderViewHolder

static class ViewHolder {
  TextView text;
  TextView timestamp;
  ImageView icon;
  ProgressBar progress;
  int position;
}

然后,您可以在或类似的类中实现它。ListAdapter


答案 2
**Create a Holder class**

protected static class ViewHolderItems
{
    private ImageView mStoreImage;
    private TextView mStoreName;
}

And use In getView method of adapter

 public View getView(int position, View convertView, ViewGroup parent) {

        ViewHolderItems viewHolder;
        if (inflater == null)
            inflater = (LayoutInflater) activity
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        if (convertView == null) {
            convertView = inflater.inflate(R.layout.coupen_row, null);
            viewHolder = new ViewHolderItems();
            viewHolder.mStoreImage = (ImageView) convertView.findViewById(R.id.storeImage);

            viewHolder.mStoreName = (TextView) convertView.findViewById(R.id.storeName);

            convertView.setTag(viewHolder);

        } 
       else 
        {
            viewHolder = (ViewHolderItems) convertView.getTag();
        }

         return convertView;
    }

推荐