package com.example.top10downloadedapps; import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.w3c.dom.Text; import java.util.List; public class FeedAdapter extends ArrayAdapter { private static final String TAG = "FeedAdapter"; private final int layoutResource; private final LayoutInflater layoutInflater; private List applications; public FeedAdapter(@NonNull Context context, int resource, List applications) { super(context, resource); this.applications = applications; this.layoutResource = resource; this.layoutInflater = LayoutInflater.from(context); } @Override public int getCount() { return applications.size(); } @NonNull @Override public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { ViewHolder viewHolder; if (convertView == null) { convertView = layoutInflater.inflate(layoutResource, parent, false); viewHolder = new ViewHolder(convertView); convertView.setTag(viewHolder); Log.d(TAG, "getView: new view created"); } else { viewHolder = (ViewHolder) convertView.getTag(); Log.d(TAG, "getView: view provided"); } // TextView tvName = (TextView) convertView.findViewById(R.id.tvName); // TextView tvArtist = (TextView) convertView.findViewById(R.id.tvArtist); // TextView tvSummary = (TextView) convertView.findViewById(R.id.tvSummary); FeedEntry currentRecord = applications.get(position); viewHolder.tvName.setText(currentRecord.getName()); viewHolder.tvArtist.setText(currentRecord.getArtist()); viewHolder.tvSummary.setText(currentRecord.getSummary()); return convertView; } private class ViewHolder { final TextView tvName; final TextView tvArtist; final TextView tvSummary; public ViewHolder(View v) { this.tvName = v.findViewById(R.id.tvName); this.tvArtist = v.findViewById(R.id.tvArtist); this.tvSummary = v.findViewById(R.id.tvSummary); } } }