我从复合按钮的父级访问视图时遇到问题。
((Switch) convertView.findViewById(R.id.push_switch)).setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (rowItem.getPush().equals("N")) {
rowItem.setFollow(true);
rowItem.setPush("Y");
setFollowTickGreen(rowItem, convertView);
}
else if (rowItem.getPush().equals("Y")) {
rowItem.setPush("N");
}
}
});
此代码显示我的开关按钮,但是当我按下此按钮时,我需要访问convertView
以更改其他内容。
这是在适配器内完成的,因此切换代码在getView
函数中,但setFollowTickGreen
在该函数之外。
我无法将convertView
设置为最终版本,因为它会在整个getView
函数中发生变化。
我知道compoundButton是交换机,但是交换机与我想要访问Button
的交换机处于同一级别。
有一般的方法吗? 这对于其他情况以及我假设的复合按钮都是类似的。
感谢。
答案 0 :(得分:0)
这有帮助..
final View tmpConvertView=convertView;
((Switch) convertView.findViewById(R.id.push_switch)).setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (rowItem.getPush().equals("N")) {
rowItem.setFollow(true);
rowItem.setPush("Y");
setFollowTickGreen(rowItem, tmpConvertView);
}
else if (rowItem.getPush().equals("Y")) {
rowItem.setPush("N");
}
}
});