BaseAdapter中的GetCount方法频繁调用,请高手看看
只有三条数据,但是调用GetCount()方法多达650+以上的次数,不知道原因。是否与Layout XML文件相关
private class ListViewAdapter extends BaseAdapter
{
/* inflater */
private LayoutInflater mInflater;
private ArrayList<AbsSiteInfo> sites;
private ArrayList<LDAPSiteInfo> ldapSites;
private ArrayList<AbsSiteInfo> selectedSites;
private ArrayList<LDAPSiteInfo> selectedLDAPSites;
private int count = 0;
public ListViewAdapter()
{
HLog.i("AddrLocalView", "ListViewAdapter: ListViewAdapter");
mInflater = LayoutInflater.from(mContext);
sites = new ArrayList<AbsSiteInfo>();
ldapSites = new ArrayList<LDAPSiteInfo>();
selectedSites = new ArrayList<AbsSiteInfo>();
selectedLDAPSites = new ArrayList<LDAPSiteInfo>();
}
@Override
public int getCount()
{
return count;
}
public String getItemName(int postion)
{
HLog.i("AddrLocalView", "ListViewAdapter: getItemName");
if (postion >= sites.size())
{
return ldapSites.get(postion - sites.size()).getAbsSite().name;
}
else
{
return sites.get(postion).name;
}
}
public int getSelectedCount()
{
HLog.i("AddrLocalView", "ListViewAdapter: getSelectedCount");
return selectedLDAPSites.size() + selectedSites.size();
}
public ArrayList<AbsSiteInfo> getSites()
{
return sites;
}
@Override
public long getItemId(int position)
{
HLog.i("AddrLocalView", "ListViewAdapter: getItemId");
return position;
}
/**
* 得到每行item ,一个view代表一行item
*/
public View getView(int position, View convertView, ViewGroup parent)
{
HLog.i("AddrLocalView", "ListViewAdapter: getView");
final Viewholder viewholder;
if (convertView == null)
{
convertView = mInflater.inflate(R.layout.address_list_style, null);
viewholder = new Viewholder();
// 取出控件对象
viewholder.lineLayout = (LinearLayout) convertView.findViewById(R.id.lineText);
viewholder.text = (TextView) convertView.findViewById(R.id.txtSname);
viewholder.no = (TextView) convertView.findViewById(R.id.no);
viewholder.onlineImage = (ImageView) convertView.findViewById(R.id.online_status_image);
viewholder.mtableLayout = (TableLayout) convertView.findViewById(R.id.childText);
viewholder.addrCheckbox = (CheckBox) convertView.findViewById(R.id.address_check);
viewholder.btnSave = (ImageButton) convertView.findViewById(R.id.ldap_item_save);
viewholder.btnExpand = (ImageView) convertView.findViewById(R.id.expand);
viewholder.ldap_image = (ImageView) convertView.findViewById(R.id.ldap_image);
viewholder.addrCheckbox.setOnClickListener(new OnClickListenerHandle()
{
@Override
public void onNormalClick(View v)
{
CheckBox chkbtn = (CheckBox) v;
handlerCheckboxClick(chkbtn);
}
});
convertView.setTag(viewholder);
}
else
{
viewholder = (Viewholder) convertView.getTag();
}