请问以下两种写法那种比较好 , 效率上有什么区别吗?
- 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());