在系统setting中添加了一个自己的选项。可惜在界面中的actionbar上无法添加switch
系统的蓝牙setting中有相同的结构。源码的添加switch代码如下:
大神们!!!求解啊!!!!!!
Activity activity = getActivity();
Switch actionBarSwitch = new Switch(activity);
if (activity instanceof PreferenceActivity) {
PreferenceActivity preferenceActivity = (PreferenceActivity) activity;
if (preferenceActivity.onIsHidingHeaders() || !preferenceActivity.onIsMultiPane()) {
final int padding = activity.getResources().getDimensionPixelSize(
R.dimen.action_bar_switch_padding);
actionBarSwitch.setPadding(0, 0, padding, 0);
activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
ActionBar.DISPLAY_SHOW_CUSTOM);
activity.getActionBar().setCustomView(actionBarSwitch, new ActionBar.LayoutParams(
ActionBar.LayoutParams.WRAP_CONTENT,
ActionBar.LayoutParams.WRAP_CONTENT,
Gravity.CENTER_VERTICAL | Gravity.RIGHT));
}
}
系统里根本不是这样实现的 是自定义的switchbar 里面那个也不是switch 控件,是用toggleslider实现的
楼主搞错了,系统的蓝牙界面根本不是这样实现的。在系统的 com.android.settings.widget 包下,有个SwitchBar控件,是写在 settings的布局文件中的,文件名为:
R.layout.settings_main_prefs。(我现在看的是5.0的源码,4.0的好像有点不一样)