我正在开发一款需要与Android 4.0之前设备兼容的应用。
在4.0之前的布局中,我必须使用ToggleButton
,并使用Switch
在4.0上午的帖子中使用OnClickListener
。就用户而言,两者的功能相同。单击它们时,它们应具有相同的行为。
我正在尝试编写一个适用于它们的Switch
,这样我就不会复制很多代码了。 ToggleButtons
/ Fragment
在onClickListener
内使用,因此只需将布局中的Switch
调用无效即可。
为了尝试对ToggleButton
和onClickListener
进行尝试,我将private View.OnClickListener pushSelector = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (((ToggleButton) v).isChecked() || ((Switch) v).isChecked()) {
// code
} else {
// code
}
}
};
设置为pushSelector,即:
onClickListener
不出所料,这不起作用,但我想我会试一试。
是否可以使用ToggleButton
来处理Switch
和onClickListener
,或者我需要为每个var found: [AnyObject]?
let q = PFQuery(className: "classname")
q.whereKey("sender", equalTo: "String")
q.whereKey("receiver", equalTo: "String")
q.addAscendingOrder("createdAt")
q.findObjectsInBackgroundWithBlock { (result, error) -> Void in
found = result
}
设置一个If JobType ID equal to 1 then it will have format "JobType UserName UserID"
If JobType ID equal to 2 then it will have format "JobType JobID UserID Action Result"
吗? / p>
答案 0 :(得分:3)
请考虑使用a OnCheckedChangeListener,因为Switch和ToggleButtons都是从CompoundButton扩展而来的。
请注意,如果从代码中调用(button).setChecked(boolean),也会调用此回调!如果您需要设置是否从代码中选中了按钮,请执行以下操作:
button.setOnCheckedChangeListener(null);
button.setChecked(boolean);
button.setOnCheckedChangeListener(mButtonChangeListener);