我在按钮上使用了与下面非常类似的代码setOnClickListener
,并且视图已通过。
((Switch) convertView.findViewById(R.id.push_switch)).setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if(rowItem.getPush().equals("N")){
((Switch) convertView.findViewById(R.id.push_switch)).toggle();
rowItem.setPush("Y");
}
else if(rowItem.getPush().equals("Y")){
((Switch) convertView.findViewById(R.id.push_switch)).toggle();
rowItem.setPush("N");
}
}
});
在上面的代码中,视图没有通过,所以如何访问它以更改放置convertView
的位置。
对于这个问题并不重要的边查询是为什么当按钮没有发生时,第一行被转换为(Switch)。只是对那个感兴趣!
谢谢:)
答案 0 :(得分:1)
正如@Mike M评论的那样,compoundButton是Switch。回调方法onCheckedChanged
正在向您传递一个引发回调的CompoundButton的引用......在本例中是您的Switch。
你可以这样做:
compoundButton.toggle();