`
lautherf
  • 浏览: 14963 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

android 2.2 apidemos 赏析笔记 5

 
阅读更多
PreferencesFromXml.java

SEE:
1.

        addPreferencesFromResource(R.xml.preferences);
2.R.xml.preferences.XML
<PreferenceScreen
        xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory
            android:title="@string/inline_preferences">
        <CheckBoxPreference
                android:key="checkbox_preference"
                android:title="@string/title_toggle_preference"
                android:summary="@string/summary_toggle_preference" />
    </PreferenceCategory>


        <EditTextPreference
                android:dialogTitle="@string/dialog_title_edittext_preference"


        <ListPreference
                android:entries="@array/entries_list_preference"
                android:entryValues="@array/entryvalues_list_preference"


        <PreferenceScreen
                android:title="@string/title_intent_preference"
                android:summary="@string/summary_intent_preference">

            <intent android:action="android.intent.action.VIEW"
                    android:data="http://www.android.com" />

        </PreferenceScreen>


        <CheckBoxPreference
                android:dependency="parent_checkbox_preference"
                android:layout="?android:attr/preferenceLayoutChild"

SO:
具体的设置方法看代码





PreferenceDependencies.java

SEE:
1.R.xml.preference_dependencies
                android:dependency="wifi"
SO:
完。。

DefaultValues.java
SEE:R.xml.default_values
1.
    <CheckBoxPreference
            android:defaultValue="true"
2.
    <EditTextPreference
            android:defaultValue="@string/default_value_edittext_preference"
3.
    <ListPreference
            android:defaultValue="@string/default_value_list_preference"
SO:
不同的Value设置。完。。。。


PreferencesFromCode


SEE:
1.
public class PreferencesFromCode extends PreferenceActivity {
2.
        PreferenceCategory inlinePrefCat = new PreferenceCategory(this);
        inlinePrefCat.setTitle(R.string.inline_preferences);
        root.addPreference(inlinePrefCat);
3.
        TypedArray a = obtainStyledAttributes(R.styleable.TogglePrefAttrs);
        childCheckBoxPref.setLayoutResource(
                a.getResourceId(R.styleable.TogglePrefAttrs_android_preferenceLayoutChild,
                        0));
        a.recycle();
4.
        inlinePrefCat.setTitle(R.string.inline_preferences);
5.
SO:
具体设置方法见代码。这里没有设置dependency 我设置了        parentCheckBoxPref.setKey("key1");
        childCheckBoxPref.setDependency(parentCheckBoxPref.getKey());
都不行,奇怪。难道不可以从代码写,还是用XML好了。

AdvancedPreferences.java

SEE:
        PreferenceManager.setDefaultValues(this, R.xml.advanced_preferences, false);
SO:
从XML中设置默认值,而不是布局。。。RI


SEE:
1.
public class AdvancedPreferences extends PreferenceActivity implements OnSharedPreferenceChangeListener {
2.AdvancedPreferences.java
        mCheckBoxPreference = (CheckBoxPreference)getPreferenceScreen().findPreference(
                KEY_ADVANCED_CHECKBOX_PREFERENCE);
SO:
findViewById的PreferenceActivity版。。


SEE:
1.
            mHandler.postDelayed(this, 1000);       
2.
        mForceCheckBoxRunnable.run();
3.

        mHandler.removeCallbacks(mForceCheckBoxRunnable);
SO:
设置线程与运行。mHandler是控制的主线程,一秒后继续再次运行该Runnable,使用mHandler来取消。

SEE:
1.
        getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
2.
        getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
SO:
设置Preference监听与取消监听


SEE:
1.preference_widget_mypreference.xml
<TextView
    android:id="@+id/mypreference_widget"
    android:focusable="false"
    android:clickable="false"
2.MyPreference.JAVA
setWidgetLayoutResource(R.layout.preference_widget_mypreference); 
3.MyPreference.JAVA
        final TextView myTextView = (TextView) view.findViewById(R.id.mypreference_widget);
        if (myTextView != null) {
            myTextView.setText(String.valueOf(mClickCounter));
        }    
SO:
神奇的设置,这里的TextView是用来显示数字的那个,不是整个preference的布局


SEE: MyPreference.JAVA 自定义preference的方法 MARK
1.
!callChangeListener(newValue)
2.
        persistInt(mClickCounter);
3.
        notifyChanged();
4.
    protected Object onGetDefaultValue(TypedArray a, int index) {
        // This preference type's value type is Integer, so we read the default
        // value from the attributes as an Integer.
        return a.getInteger(index, 0);
    }
5.
    protected void onSetInitialValue(boolean restoreValue, Object defaultValue) {
6.
    protected Parcelable onSaveInstanceState() {
7.
    protected void onRestoreInstanceState(Parcelable state) {
8.
    private static class SavedState extends BaseSavedState {
            clickCounter = source.readInt();
            dest.writeInt(clickCounter);
SO:
1.如果是invalid就不能改变。
2.保存值,
3.通知改变,观察者模式。
4.返回默认值
5.设置值的方法
6.有点扯不来了,这个是被临时破坏的时候,通过这个方法保存 同activity的那个。
7.回复值的时候调用
8.扯不来了,自己理解吧。。仿照下就好。。继承了该数据结构,外加一个附带的值就好。。
然后弄清楚读取和保存的地方就好。。




















分享到:
评论

相关推荐

    Android2.2 ApiDemos

    《Android 2.2 ApiDemos深度解析》 在Android开发领域,ApiDemos是一个非常重要的参考资料,它是由Google官方提供的一个示例程序,包含了Android SDK中的各种API功能的演示。这个项目,针对的是Android 2.2(API...

    Android6.0 Api Demos

    **Android 6.0 API Demos详解** Android 6.0 API Demos 是一个官方提供的示例代码集合,它展示了Android 6.0 (Marshmallow) SDK中的各种API功能和用法。这些示例旨在帮助开发者更好地理解和学习如何在实际应用中...

    android的ApiDemos

    API Demos 是 Google 为了 Android 开发者所提供的一个 Android API 合集,其中包含了很多的 API 范例,同时遵循了良好的代码规范,是一个值得开发者研究和学习的典型。android的ApiDemos,需要解压缩后使用。

    最新Android apidemos

    《深入探索Android API Demos:最新实践与技术解析》 Android API Demos是Google官方提供的一款用于展示Android SDK中各种API功能和用法的应用程序,它涵盖了从基础控件到高级特性的全方位示例,是开发者学习...

    android1.6 apiDemos

    《Android 1.6 API Demos深度解析》 在Android开发的世界中,API Demos是一个不可或缺的学习资源,它为开发者提供了丰富的示例代码,帮助理解并掌握Android API的各种功能。本篇文章将深入探讨"android1.6 apiDemos...

    Android6.0 ApiDemos.apk

    从官方预览包里提取的Android6.0 ApiDemos.apk,方便安装在真机上查看实例的实际效果。

    Android ApiDemos apk

    《Android ApiDemos apk:深入理解Android应用开发的实践指南》 Android ApiDemos apk是Android开发者们熟悉的一个示例程序,它包含了Android SDK中的各种API功能演示,为开发者提供了丰富的学习资源。这个应用程序...

    android4.3 Apidemos

    《Android 4.3 ApiDemos深度解析》 在Android操作系统的发展历程中,每个版本的更新都会带来新的特性和API,以提升用户体验和开发者的工作效率。Android 4.3(API级别18)是Android系统的一个重要里程碑,它引入了...

    Android4.1ApiDemos最新

    《深入解析Android 4.1 ApiDemos》 在Android开发领域,ApiDemos是一个非常重要的参考资料,它是由Google官方提供的示例代码集合,用于演示Android SDK中的各种API功能。对于开发者来说,尤其是对Android 4.1...

    Android ApiDemos4.4 示例解析

    最新版ApiDemos Android SDK 中带有很多例子,其中ApiDemo 详细介绍了Android 平台主要API,分成了 · App · Content · Graphics · Media · OS · Text · Views 几个大类,每个大类又分为几个小类,...

    Android 5.1 ApiDemos.apk

    Android 5.1的ApiDemos安装包

    android 3.0 ApiDemos

    《Android 3.0 ApiDemos详解》 在Android开发领域,`ApiDemos`是一个非常重要的学习资源,它是Google官方提供的一款示例程序,包含了Android SDK中的各种API功能演示。这个项目主要用于帮助开发者理解并熟悉Android...

    android_ApiDemos

    《Android ApiDemos详解——深度探索Android开发应用实例》 Android ApiDemos是Android开发者学习和理解Android API的重要资源,它包含了丰富的示例代码,涵盖了Android SDK中的各种API功能。这个程序是专为Android...

    Android ApiDemos

    **Android ApiDemos详解** `Android ApiDemos` 是Android系统提供的一款官方示例程序,它集合了Android SDK中的各种API用法,是开发者学习和理解Android开发的关键资源。这个项目旨在通过实例代码来演示Android API...

    Android官网ApiDemos源码

    Android官网ApiDemos源码 供大家学习参考之用

    android ApiDemos

    《Android API Demos详解》 Android API Demos是一款由谷歌官方提供的开源项目,它包含了大量Android SDK中的API示例代码,旨在帮助开发者更好地理解和学习如何在实际应用中使用Android的各种功能和API。该项目覆盖...

    Android ApiDemos不报错版本,eclipse可用

    **Android ApiDemos详解** ApiDemos是Android官方提供的一款示例应用,它包含了Android SDK中的各种API功能演示,帮助开发者了解和学习Android系统提供的各种API接口和功能。这个"Android ApiDemos不报错版本"是...

    android api19 ApiDemos

    《Android API 19 ApiDemos详解》 在Android开发领域,API Demos是一个非常重要的学习资源,它包含了Android SDK中的各种API示例代码,帮助开发者深入理解和掌握Android平台的功能特性。本文将针对API Level 19...

    android ApiDemos不报错版本

    《Android ApiDemos不报错版本:探索与学习》 Android ApiDemos是Android平台上的一个官方示例项目,它为开发者提供了丰富的API演示,涵盖了Android系统中的各种控件和功能,是学习和理解Android开发的宝贵资源。这...

Global site tag (gtag.js) - Google Analytics