Android中PreferenceActivity使用详解

更新时间:2023-08-02 02:14:05 阅读: 评论:0

一,Preference介绍
二,PreferencesActivity介绍
三,PreferenceActivity的使用
四,PreferenceActivity分别和ListFragment,PreferenceFragment组合使用
五,Preference数据获取
总结
一,Preference介绍
Android的preference以键值对的来处理这种情况:自动保存设置的数据,并立时生效,而这种使用android sharedpreferences进行保存的,不需要们手动来写sharedpreferences;
常见的Preference控件有:
直接子类:DialogPreference, PreferenceGroup, RingtonePreference, TwoStatePreference
非直接子类:CheckBoxPreference, EditTextPreference, ListPreference, MultiSelectListPreference, PreferenceCategory, PreferenceScreen, SwitchPreference
二,PreferencesActivity介绍
Android中专门用来实现程序设置界面及参数存储的一个Activity。从Android 3.0以后不再推荐直接让PreferenceActivity加载选项设置布局文件,而建议使用PreferenceFragment(此类在API级别28中已弃用。替代类androidx库下的PreferenceFragmentCompat,有关androidx的问题有很多,这里不过多介绍 ),二者用法类似。PreferenceActivity在API级别29中已被弃用。PreferenceActivity与普通的Activity不同,它不使用界面布局文件,而使用选项设置的布局文件。
PreferencesActivity介绍文档:
三,PreferenceActivity的使用
3.1,在res下新建xml目录,在xml目录下新建PreferenceActivity需要的布局文件l(使用PreferenceScreen 最为根节)
在res/l文件中新建以上需要的资源数据
        普通话
        粤语
        英语
        俄语
        法语
收纳技巧        mandarin
        cantone
        en_us
        russian
        french
love_me
3.2,创建PreferenceActivity的子类SettingActivity
不忘初心英文public class SettingActivity extends PreferenceActivity {
    public static final String PREFER_NAME = "tting";
    private EditTextPreference mVadbosPreference;
    @SuppressWarnings("deprecation")
    public void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);尼尔斯
        Create(savedInstanceState);
        getPreferenceManager().tSharedPreferencesName(PREFER_NAME);
        l.tting);
        mVadbosPreference = (EditTextPreference)findPreference("tting_preference");
    }
}
3.3,运行看一下图如下: 
 
注意:运行时候,会自动在/data/data//shared_prefs/目录生成一个文件名为tting文件;
四,PreferenceActivity分别和ListFragment,PreferenceFragment组合使用
PreferenceFragment文档:
精液不液化
4.1,在res下新建xml目录,在xml目录下新建PreferenceActivity需要的布局文件l(使用preference-headers
 最为根节,通过header引入Fragment)
public class ListFragmentSettings extends ListFragment {
    protected ArrayAdapter mAdapter;
    protected String mData[];
    public void onCreate(Bundle savedInstanceState) {
        Create(savedInstanceState);
        mData = getActivity().getResources().getStringArray(ies);
        mAdapter = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_single_choice, mData);
        tListAdapter(mAdapter);
    }
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_radio_zone_ttings, container,fal);
        return view;
    }
    public void onListItemClick(ListView l, View v, int position, long id) {
        ListItemClick(l, v, position, id);
啃老一族
    }
}
上面header引入PreferenceFragment的子类PreferenceFragmentTest代码:
public class PreferenceFragmentTest extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        Create(savedInstanceState);
        //从xml文件加载选项罗汉饼
        l.fragment_preference_test);
    }
}
fragment_preference_test布局文件(也在res/xml/目录下)
 4.2,创建PreferenceActivity的子类PreferenceActivityTest(名字都随便起的)
public class PreferenceActivityTest extends PreferenceActivity {
    private static List fragments = new ArrayList();
    @Override陪我数星星
    protected void onCreate(Bundle savedInstanceState) {
        Create(savedInstanceState);
        if (hasHeaders()) {
            Button button = new Button(this);
            button.tText("Exit");
            tListFooter(button);
        }
    }
    @Override
    public void onBuildHeaders(List target) {
        l.activity_ttings, target);//从xml文件加载Preference选项
        fragments.clear();
        for (Header header : target) {
            fragments.a(header.fragment);
        }
    }
    //android 4.3以上版本需要验证,验证有很多
年假计算
    @Override
    protected boolean isValidFragment(String fragmentName) {
        ains(fragmentName);

本文发布于:2023-08-02 02:14:05,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1126298.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:文件   设置   子类   需要   布局
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图