我在按钮上使用了一个非常类似的代码片段setOnClickListener
,并且视图已通过。无法访问开关内部的视图android
((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)。只是对那个感兴趣!
谢谢:)
“...的观点并没有通过......通过” - 'compoundButton'是交换机。 – 2014-11-20 16:25:19
我以前从未使用复合按钮,所以我可能会误解它是什么。如果我有一个开关,我需要在它改变的状态下激活一个回调。我会用我必须做的吗?因为我需要访问这个父级内的开关吗? – sark9012 2014-11-20 16:27:35
'CompoundButton'是'Switch'类的基类。在侦听器方法中,将'compoundButton'强制转换为'Switch',而不是在'convertView'上尝试'findViewById()'。这将是接收事件的'Switch'对象。 – 2014-11-20 16:30:44