我在我的活动和每行Im有一个ListView使用我的自定义布局与TextView和两个按钮。当我点击这两个按钮中的任何一个时,我想要执行某个动作。在我的ArrayAdapter中,在getView方法中,我将onClickListeners设置为这两个按钮。Android ListView自定义布局
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
v = li.inflate(R.layout.process_row, null);
}
final Button processCheck = (Button) v.findViewById(R.id.processCheck);
processCheck.setOnClickListener(new View.OnClickListener() {
@Override
public 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;
}
ArrayList保存mz自定义类的对象进程和进程在代码中是这个类的一个实例。所以,现在当我在其中一个ListView行中单击这个按钮时,我希望改变给定Process实例中的布尔变量并更改按钮的颜色。发生这种情况,但不仅仅是这一行,还有3-4次。所以点击后,我有5个改变的按钮,而不是一个。你知道我在这里做错了什么吗?请注意,我不太了解ListActivity编码,大部分代码实际上是从示例文件中复制和编辑的。谢谢!
编辑:
该问题可能只与布局的地方。当我点击按钮时,它们中的更多颜色会改变,但只有我单击的过程的布尔值发生了变化。
http:// w ww.android-ios-tutorials.com/770/create-custom-listview-in-android/ – Houcine