package com.jenzz.materialpreference; import android.content.Context; import android.content.res.TypedArray; import android.support.v7.widget.SwitchCompat; import android.util.AttributeSet; import android.view.View; public class SwitchPreference extends TwoStatePreference { public SwitchPreference(Context context) { super(context); init(context, null, 0, 0); } public SwitchPreference(Context context, AttributeSet attrs) { super(context, attrs); init(context, attrs, 0, 0); } public SwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(context, attrs, defStyleAttr, 0); } public SwitchPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); init(context, attrs, defStyleAttr, defStyleRes); } private void init(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { TypedArray typedArray = context.obtainStyledAttributes(attrs, new int[] { android.R.attr.summaryOn, android.R.attr.summaryOff, android.R.attr.disableDependentsState }, defStyleAttr, defStyleRes); setSummaryOn(typedArray.getString(0)); setSummaryOff(typedArray.getString(1)); setDisableDependentsState(typedArray.getBoolean(2, false)); typedArray.recycle(); setWidgetLayoutResource(R.layout.mp_switch_preference); } @Override protected void onBindView(View view) { super.onBindView(view); SwitchCompat switchCompat = (SwitchCompat) view.findViewById(R.id.switch_compat); switchCompat.setChecked(isChecked()); syncSummaryView(view); } }