我的 Activity 中有一个 ListView,对于每一行,我都使用带有 TextView 和两个按钮的自定义布局。当我单击这两个按钮中的任何一个时,我希望执行某个操作。在我的 ArrayAdapter 中,在 getView 方法中,我将 onClickListeners 设置为这两个按钮。
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 编码,大部分代码实际上是从示例文件中复制和编辑的。谢谢!
编辑:
问题可能只出在某处的布局上。当我单击按钮时,它们中的更多会改变颜色,但只有我单击的进程的布尔值才会改变。