【发布时间】:2014-05-26 10:24:35
【问题描述】:
我正在尝试将文件数组的详细信息加载到 ListView...这里我的文件数组从数据库返回了 1 条记录。我正在将此数组加载到我的自定义 arrayAdapter..
问题:
CustomArrayAdapter getView() 方法调用 3 次以获得第 0 个位置
第一次 convertView 将为空
第二次 convertView 不为空
第三次 convertView 再次为空
这是我的代码,
ArrayList files = null;
try {
files = db.getRecords(tableName, null, Type LIKE '.txt' , null, null, null, null);
} catch (Exception e) {
e.printStackTrace();
}
/*** files.size() = 1 ***/
infoAdt = new InfoAdapter(mContext, R.layout.custome_view, files);
setListAdapter(infoAdt);
public class InfoAdapter extends ArrayAdapter<Object> {
public InfoAdapter(Context context, int textViewResourceId, List<Object> objects) {
super(context, textViewResourceId,objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inf = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inf.inflate (R.layout.custome_view, parent, false);
ViewHolder viewHolder = new ViewHolder();
viewHolder.nameView = (TextView) convertView.findViewById(R.id.name);
viewHolder.typeView = (TextView) convertView.findViewById(R.id.type);
viewHolder.sizeView = (TextView) convertView.findViewById(R.id.size);
convertView.setTag(viewHolder);
}
ViewHolder holder = (ViewHolder) convertView.getTag();
FileItem f = (FileItem) getItem(position);
String[] fileNameAndType= f.getFileName().split("\\.");
holder.nameView.setText(fileNameAndType[0]);
holder.typeView.setText(fileNameAndType[1]);
return convertView;
}
}
class ViewHolder{
TextView nameView;
TextView typeView;
TextView sizeView;
}
【问题讨论】:
标签: android android-listview android-arrayadapter