public class SwitchWrapper implements DesignerCustomView {
private BA ba;
private String eventName;
private Switch switchView;
public void Initliaze(BA ba, String EventName) {
_initialize(ba, null, EventName);
}
@Hide
public void _initialize(BA ba, Object activityClass, String EventName) {
this.eventName = EventName.toLowerCase(BA.cul);
this.ba = ba;
}
//programmatically add view
public void AddToParent(ViewGroup Parent, @Pixel int left, @Pixel int top, @Pixel int width, @Pixel int height) {
switchView = new Switch(ba.context);
switchView.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
ba.raiseEvent(this, eventName + "_checkedchange", arg1);
}
});
Parent.addView(switchView, new BALayout.LayoutParams(left, top, width, height));
}
//this method cannot be hidden.
public void DesignerCreateView(PanelWrapper base, LabelWrapper lw, anywheresoftware.b4a.objects.collections.Map props) {
ViewGroup vg = (ViewGroup) base.getObject().getParent();
base.RemoveView();
AddToParent(vg, base.getLeft(), base.getTop(), base.getWidth(), base.getHeight());
//set text properties
switchView.setText(lw.getText());
switchView.setTypeface(lw.getTypeface());
switchView.setTextSize(lw.getTextSize());
switchView.setTextColor(lw.getTextColor());
}
public void setChecked(boolean value) {
switchView.setChecked(value);
}
public boolean getChecked() {
return switchView.isChecked();
}
}