建筑企业网站要简约大气吗,零基础网站建设教学服务,潮州企业网站建设,网站做的最好的公司编辑#xff1a;找一个 “开箱即用” 的帖子的末尾例子#xff01;因为你看到多行受到影响我猜它有些事情要做系统如何回收资源#xff0c;也许对Button的引用是不明确的。我不确定我在哪里选择了这种做法(Android教程或我们以前的开发人员通过这些教程学习了Android)。然而…编辑找一个 “开箱即用” 的帖子的末尾例子因为你看到多行受到影响我猜它有些事情要做系统如何回收资源也许对Button的引用是不明确的。我不确定我在哪里选择了这种做法(Android教程或我们以前的开发人员通过这些教程学习了Android)。然而建议是使用一个嵌套类ViewHolderprivate static class ViewHolder {public Button processCheck;}将此放在适配器或任何类的getView()在声明并修改它是这样public View getView(int position, View convertView, ViewGroup parent) {View v convertView;$ViewHolder viewHolder; //wait for the magic!if (v null) {v li.inflate(R.layout.process_row, null);$viewHolder new ViewHolder();$viewHolder.processCheck (Button) v.findViewById(R.id.processCheck);$v.setTag(viewHolder);//ok we somewhat stuffed an object with the Button into our View... so what?}$viewHolder (ViewHolder) v.getTag();//see explanation below$viewHolder.processCheck.setOnClickListener(new View.OnClickListener() {//set the onClickListener for this and only this button.Overridepublic void onClick(View v) {if (process.isChecked() false) {process.setChecked(true);processCheck.setBackgroundColor(Color.BLUE);}else {process.setChecked(false);processCheck.setBackgroundColor(Color.RED);}}});return v;}(我打上$变化。我认为这样他们应该很容易发现如果我使用eclipse。否则查找替换^^)因此将返回一个与调用的视图关联的对象。对象是如此令人难以置信的泛型您可以将其称为您创建的ViewHolder对象。因此您可以引用按钮并将其存储在对象中。现在无论何时获得ListView都可以检索对象并设置新鲜和新鲜的OnclickListener。这样你只有一个Listener被调用。请注意您不必再次致电v.setTag();来“保存”您的更改。一个陷阱可能是如果你疯狂的东西像在同一个列表中膨胀不同的布局有什么理由。你也许会不同ViewHandlers分配给他们如if (v null) {if(someCriteria) {v li.inflate(R.layout.process_row, null);viewHolder new ViewHolder();}v li.inflate(R.layout.process_another_row, null);viewHolder new AnotherViewHolder();}随后的getView()一个ViewHolder或其他未经检查的通话可能会在运行时抛出一个错误