Пример #1
0
  /* ViewHolder pattern: https://www.codeofaninja.com/2013/09/android-viewholder-pattern-example.html */
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {

    ViewHolderItem viewHolder;

    if (convertView == null) {
      // Inflate layout first time
      convertView =
          LayoutInflater.from(getContext()).inflate(R.layout.artist_list_item, parent, false);

      // well set up the ViewHolder (partie où sans ViewHolder, cela est coûteux en perf)
      viewHolder = new ViewHolderItem();
      viewHolder.songArtistItem = (TextView) convertView.findViewById(R.id.song_artist);

      // store the holder with the view
      convertView.setTag(viewHolder);
    } else {
      // using the viewHolder instead of calling findViewById() on resource everytime
      viewHolder = (ViewHolderItem) convertView.getTag();
    }

    // song object based on the position
    String artist = getItem(position);

    if (artist != null) {
      viewHolder.songArtistItem.setText(artist);
    }

    return convertView;
  }