2
我使用列表視圖帶或不帶convertview == NULL
if (convertview==null){
(my code)
}
與否左右爲難。沒有這段代碼,我的列表視圖不是很快,它有時鎖定幾個毫秒,你可以很容易地注意到這個使用。它的工作原理並不起作用。
但是,當這段代碼,我的listitems將開始重新計算一段時間後(10左右),我有幾個返回listitems在我的列表中(與我使用的標題)。我使用本教程來獲取我的列表視圖link。名單的長度是好的。
Ofcourse當然,我的列表是完全無用的重複項目的視圖(很好地分段的方式),但我也不希望它慢。 有誰知道該怎麼辦? 下面是我的適配器:
公共類DelftAdapter延伸BaseAdapter {
private Activity activity;
private List<ListItem> listItems;
private static LayoutInflater inflater=null;
public ImageLoader imageLoader;
private final int[] bgColors = new int[] { R.color.list_odd, R.color.list_even };
public DelftAdapter(Activity a, ArrayList<ListItem> li) {
activity = a;
listItems = li;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader=new ImageLoader(activity.getApplicationContext());
}
public int getCount() {
return listItems.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
final ListItem li = listItems.get(position);
if (li != null) {
if(li.isSection()){ // is sectionheader
SectionItem si = (SectionItem)li;
vi = inflater.inflate(R.layout.sectionedlistitem, null);
vi.setOnClickListener(null);
vi.setOnLongClickListener(null);
vi.setLongClickable(false);
final TextView sectionView = (TextView) vi.findViewById(R.id.list_header_title);
sectionView.setText(si.getTitle());
}else{ // no sectionheader
ListData ld = (ListData)li;
vi = inflater.inflate(R.layout.singlelistitem, null);
TextView tvNames=(TextView)vi.findViewById(R.id.tvname);
TextView tvTip=(TextView)vi.findViewById(R.id.tvtip);
ImageView image=(ImageView)vi.findViewById(R.id.image);
tvNames.setText(ld.name);
tvTip.setText(ld.tip);
if (listItems.get(position) != null){
imageLoader.DisplayImage(ld.photoUrl, image);
}
else{
image.setImageURI(Uri.fromFile(new File("//assets/eten.png")));
}
// alternating colors
int colorPos = position % bgColors.length;
vi.setBackgroundResource(bgColors[colorPos]);
}
}
return vi;
}
}
我獨家使用這個和ViewHolder模式,它可能是鍋爐板代碼,但它確實有助於性能。 – ScouseChris 2012-07-23 15:25:54
我讓它工作!但是現在我按照建議實現ViewHolder模式,但非常感謝。 – Jasper 2012-07-23 21:33:44
嗨,我也有與部分ListViews的麻煩。 這是我的兩個佈局: – ryvianstyron 2012-11-09 21:17:42