Java Android:实现ViewHolder
我试图在我的Android应用程序中实现ViewHolder,但我一直认为ViewHolder无法解析为一种类型,并且没有任何导入建议。有人知道如何解决这个问题吗?这是因为Java Android:实现ViewHolder,java,android,Java,Android,我试图在我的Android应用程序中实现ViewHolder,但我一直认为ViewHolder无法解析为一种类型,并且没有任何导入建议。有人知道如何解决这个问题吗?这是因为视图持有者不是来自Android SDK的类,而是您自己创建的。 根据我的能力,ViewHolder是一个实现,它为更大的区域存储视图(通常是ListView中的每一行),因此它是一种助手类和缓存机制。这是我在Android开发者身上发现的一个ViewHolder包含的内容 static class ViewHolder {
视图持有者
不是来自Android SDK的类,而是您自己创建的。
根据我的能力,ViewHolder
是一个实现,它为更大的区域存储视图(通常是ListView中的每一行),因此它是一种助手类和缓存机制。这是我在Android开发者身上发现的一个ViewHolder
包含的内容
static class ViewHolder {
TextView text;
TextView timestamp;
ImageView icon;
ProgressBar progress;
int position;
}
然后您可以在
列表适配器
或类似类中实现它。也许您正在寻找作为android支持库一部分的RecyclerView.ViewHolder
**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;
}
喜欢这个链接的代码吗
如果你和一个
在这种情况下,他们需要一个对象来保存视图,以便根据需要用内容填充视图。Page#36:下面是一个很好的视图持有者示例
public static class ItemViewHolder extends RecyclerView.ViewHolder implements
ItemTouchHelperViewHolder {
public final TextView textView;
public final ImageView handleView;
public ItemViewHolder(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.text);
handleView = (ImageView) itemView.findViewById(R.id.handle);
}
@Override
public void onItemSelected() {
itemView.setBackgroundColor(Color.LTGRAY);
}
@Override
public void onItemClear() {
itemView.setBackgroundColor(0);
}
}