Adapter
のViewHolder
のユーティリティはなんですか?カスタムアダプタでのViewHolderのユーティリティ
私はViewHolder
を使用してAdapter
を作成しましたが、これ以外のものは使用していません。これと同じ結果が得られます...これはどのようなユーティリティですか?
これはViewHolder
と私のCustomAdapter.classです:
public class CustomAdapter extends ArrayAdapter<Fruit> {
public class ViewHolder {
TextView txtName;
TextView txtColor;
}
CustomAdapter(Context context, ArrayList<Fruit> data) {
super(context, R.layout.item_fruit, data);
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
final Fruit fruit = getItem(position);
ViewHolder viewHolder = new ViewHolder();
if (convertView == null) {
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.item_fruit, parent, false);
}
viewHolder.txtName = (TextView) convertView.findViewById(R.id.textView_fruit_name);
viewHolder.txtColor = (TextView) convertView.findViewById(R.id.textView_fruit_color);
if (fruit != null) {
viewHolder.txtName.setText(fruit.getName());
viewHolder.txtColor.setText(fruit.getColor());
}
return convertView;
}
}
これはViewHolder
せずに私のCustomAdapter.classです:
public class CustomAdapter extends ArrayAdapter<Fruit> {
CustomAdapter(Context context, ArrayList<Fruit> data) {
super(context, R.layout.item_fruit, data);
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
final Fruit fruit = getItem(position);
if (convertView == null) {
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.item_fruit, parent, false);
}
TextView txtName = (TextView) convertView.findViewById(R.id.textView_fruit_name);
TextView txtColor = (TextView) convertView.findViewById(R.id.textView_fruit_color);
if (fruit != null) {
txtName.setText(fruit.getName());
txtColor.setText(fruit.getColor());
}
return convertView;
}
}
ビューホルダーパターンを正しく使用していません。ビューホルダーとビューを 'if(convertView == null)'ブロック内で初期化し、 'setTag'と' getTag'を使用してviewHolderを取得する必要があります – akash93
ここにあなたの質問に対する解答があります
[Link] ://stackoverflow.com/questions/21501316/what-is-the-benefit-of-viewholder) –