工作(指示的解決方案是不是viewHolder)ViewHolder在列表視圖的自定義適配器沒有在安卓
我初學者到Android。現在我正在使用帶有自定義適配器的ListView。我閱讀了關於在適配器中使用視圖保持器的文章。它快15%。但是當我使用視圖持有者時,listview什麼也沒有顯示。
這是自定義適配器使用我持有觀點
public class PodcastListAdapter extends ArrayAdapter<Podcast> {
private ArrayList<Podcast> values;
private Context context;
public PodcastListAdapter(Context pcontext,ArrayList<Podcast> pvalues)
{
super(pcontext,-1,pvalues);
this.context = pcontext;
this.values =pvalues;
}
@Override
public View getView(final int position,View convertView,ViewGroup parent)
{
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.podcast_list_row,parent,false);
TextView titleTv = (TextView)rowView.findViewById(R.id.row_title);
TextView descriptionTv = (TextView)rowView.findViewById(R.id.row_description);
TextView durationTv = (TextView)rowView.findViewById(R.id.row_duration);
TextView fileSizeTv = (TextView)rowView.findViewById(R.id.row_file_size);
titleTv.setText(values.get(position).getTitle());
descriptionTv.setText(values.get(position).getDescription());
durationTv.setText(values.get(position).getDuration());
fileSizeTv.setText(String.valueOf(values.get(position).getFileSize()));
Log.i("CALLED","CALLED");
return rowView;
}
}
它可以正常使用了。
但是當我在適配器使用視圖座這樣
public class PodcastListAdapter extends ArrayAdapter<Podcast> {
private ArrayList<Podcast> values;
private Context context;
static class ViewHolder {
public TextView titleTextView;
public TextView descriptionTextView;
public ImageView imageView;
public TextView durationTextView;
public TextView fileSizeTextView;
}
public PodcastListAdapter(Context pcontext,ArrayList<Podcast> pvalues)
{
super(pcontext,-1,pvalues);
this.context = pcontext;
this.values =pvalues;
}
@Override
public View getView(final int position,View convertView,ViewGroup parent)
{
View rowView = convertView;
if(rowView==null)
{
LayoutInflater layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = layoutInflater.inflate(R.layout.podcast_list_row,null);
ViewHolder viewHolder = new ViewHolder();
viewHolder.descriptionTextView = (TextView)rowView.findViewById(R.id.row_description);
viewHolder.titleTextView = (TextView)rowView.findViewById(R.id.row_title);
viewHolder.durationTextView = (TextView)rowView.findViewById(R.id.row_duration);
viewHolder.fileSizeTextView = (TextView)rowView.findViewById(R.id.row_file_size);
viewHolder.imageView = (ImageView)rowView.findViewById(R.id.row_image);
rowView.setTag(viewHolder);
}
ViewHolder holder = (ViewHolder) rowView.getTag();
holder.titleTextView.setText(values.get(position).getTitle());
holder.descriptionTextView.setText(values.get(position).getDescription());
holder.durationTextView.setText(values.get(position).getDuration());
holder.fileSizeTextView.setText(String.valueOf(values.get(position).getFileSize()));
return rowView;
}
}
我的列表視圖中沒有顯示任何數據。請問我的代碼有什麼問題?請幫幫我。
你確定getView是被稱爲? – Blackbelt
請確定您的getView是致電並堅持您以前的問題,而不是再次創建新問題。 – kopikaokao
[無法在Android中的抽象請求偵聽器中更新ListView適配器]的可能重複(http://stackoverflow.com/questions/35125216/cannot-update-listview-adapter-in-the-volley-request-listener-in- android) – kopikaokao