是否可以创建一个将同时处理ToggleButton和Switch的OnClickListener

时间:2015-08-27 10:47:44

标签: android

我正在开发一款需要与Android 4.0之前设备兼容的应用。

在4.0之前的布局中,我必须使用ToggleButton,并使用Switch在4.0上午的帖子中使用OnClickListener。就用户而言,两者的功能相同。单击它们时,它们应具有相同的行为。

我正在尝试编写一个适用于它们的Switch,这样我就不会复制很多代码了。 ToggleButtons / FragmentonClickListener内使用,因此只需将布局中的Switch调用无效即可。

为了尝试对ToggleButtononClickListener进行尝试,我将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来处理SwitchonClickListener,或者我需要为每个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>

1 个答案:

答案 0 :(得分:3)

请考虑使用a OnCheckedChangeListener,因为Switch和ToggleButtons都是从CompoundButton扩展而来的。

请注意,如果从代码中调用(button).setChecked(boolean),也会调用此回调!如果您需要设置是否从代码中选中了按钮,请执行以下操作:

button.setOnCheckedChangeListener(null);
button.setChecked(boolean);
button.setOnCheckedChangeListener(mButtonChangeListener);