首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

关于adapter的getView解决方法

2012-04-24 
关于adapter的getView请问以下两种写法那种比较好 , 效率上有什么区别吗?Java codepublic View getView(in

关于adapter的getView
请问以下两种写法那种比较好 , 效率上有什么区别吗?

Java code
public View getView(int position, View convertView, ViewGroup parent) {    if (convertView == null) {            convertView = inflater.inflate(R.layout.item, null);            TextView id = (TextView) convertView.findViewById(R.id.id);            TextView name = (TextView) convertView.findViewById(R.id.name);            id.setText("xxx");            name.setText("xxx");    }        return convertView;}public View getView(int position, View convertView, ViewGroup parent) {    if (convertView == null) {        convertView = inflater.inflate(R.layout.item, null);    }        TextView id = (TextView) convertView.findViewById(R.id.id);        TextView name = (TextView) convertView.findViewById(R.id.name);        id.setText("xxx");        name.setText("xxx");        return convertView;}


[解决办法]
你这两种效率上差别不大吧,差别也就在于取值
现在网上资料中效率最高的应该就是保存到tag中,像下面这样
Java code
ViewHolder holder;            if (convertView == null) {                // 获得ViewHolder对象                holder = new ViewHolder();                convertView = mInflater.inflate(R.layout.callinteritem, null);                holder = new ViewHolder();                holder.callName = (TextView) convertView                        .findViewById(R.id.tv_interName);                holder.callNumber = (TextView) convertView                        .findViewById(R.id.tv_interNumber);                holder.callcheck = (CheckBox) convertView                        .findViewById(R.id.cb_inter);                holder.inter_delete = (Button) findViewById(R.id.bt_ci_del);                convertView.setTag(holder);            } else {                // 取出holder                holder = (ViewHolder) convertView.getTag();            }            holder.callName.setText(interlist.get(position).getCallInterName());            holder.callNumber.setText(interlist.get(position)                    .getCallInterNumber()); 

热点排行