`

[Android Samples视频系列之ApiDemos] App-Activity-PersistentState

阅读更多
App-Activity-PersistentState


1.Demo说明与演示

    该Demo使用SharedPreference来保存UI状态,主要是为了演示SharedPreference的简单使用,而且UI状态我们一般在onSaveInstanceState中保存。
    通过该Demo我们能学习到:
  • SharedPreference的简单使用
  • PreferenceManage的介绍
  • ScrollView的使用
  • HorizontalScrollView的介绍

    效果图如下:



2.视频讲解与高清版视频下载

http://www.eyeandroid.com/forum.php?mod=viewthread&tid=10285&extra=page%3D1
3.Demo分析

    Android 提供了多种存储数据的方法,其中最简单的是使用Shared Preferences. SharedPreferences 可以存储 Key/value 对,SharedPreferences 支持存取 boolean, float ,long ,integer, string ,最常用的使用Shared Preferences是用来存储一些应用偏好。此外的一个方法是使用onSaveInstanceState(),这是特别用来保存UI 状态的。
    App->Activity->Persistent State使用了Shared Preferences来保持部分UI状态(TextView的值)。
创建或是修改SharedPreferences,使用getSharedPreferences(String name, intmode)方法。Shared Preferences 用于单个Application不同Activity之间共享一些数据,单不能用于不同Application之间共享数据。
    SharedPreferences.Editor 用来给Shared Preferences添加数据: editor.putXXX(key,value)
    /**
     * Any time we are paused we need to save away the current state, so    it will be restored correctly when we are resumed.
     */
    @Override
    protectedvoid onPause() {
        super.onPause();
      
        SharedPreferences.Editor editor = getPreferences(0).edit();
        editor.putString("text", mSaved.getText().toString());
        editor.putInt("selection-start", mSaved.getSelectionStart());
        editor.putInt("selection-end", mSaved.getSelectionEnd());
        editor.commit();
    }
    读取Shared Preference: pref.getXXX(key)
  
/**
     * Upon being resumed we can retrieve the current state.  This allows us to update the state if it was changed at any time while paused.
     */
    @Override
    protectedvoid onResume() {
        super.onResume();
        SharedPreferences prefs = getPreferences(0);
        String restoredText = prefs.getString("text", null);
        if (restoredText != null) {
            mSaved.setText(restoredText, TextView.BufferType.EDITABLE);

            int selectionStart = prefs.getInt("selection-start", -1);
            int selectionEnd = prefs.getInt("selection-end", -1);
            if (selectionStart != -1 && selectionEnd != -1) {
                mSaved.setSelection(selectionStart, selectionEnd);
            }
        }
    }


4.这个Demo我们学会了

1. Android数据存储之SharedPreferences
http://www.eyeandroid.com/forum.php?mod=viewthread&tid=9608
2. Android SharedPreference模式的使用
http://www.eyeandroid.com/forum.php?mod=viewthread&tid=7533
3. Android控件之ScrollView
http://www.eyeandroid.com/forum.php?mod=viewthread&tid=7615
4. android.view.View
http://www.eyeandroid.com/forum.php?mod=viewthread&tid=10160
5. ScrollView Refrence
http://www.eyeandroid.com/forum.php?mod=viewthread&tid=10161
  • 大小: 94.2 KB
0
2
分享到:
评论

相关推荐

    android4.4samples(包含ApiDemos)

    "android4.4samples"是一个包含了Android 4.4(KitKat)SDK中的示例代码集合,它为开发者提供了一个深入学习Android API的平台。这些示例代码涵盖了各种功能和组件的使用方法,帮助开发者更好地理解和应用Android...

    vuforia-samples-advanced-android-ios-unity-4-2-3

    vuforia-samples-advanced-android-ios-unity-4-2-3.zip官网下载太慢了,放在网盘方便大家下载

    android-L\legacy\ApiDemos

    andorid L\adt-bundle-windows-x86_64-20140624\sdk\samples\android-L\legacy\ApiDemos 最新的androidl 的apidemos

    vuforia-samples-core-android-ios-unity-4-2-3

    vuforia-samples-core-android-ios-unity-4-2-3.zip官网400M下载太慢了,传到百度云盘,方便大家下载,一分意思一下!

    arcgis runtime samples android master

    总结,ArcGIS Runtime SDK for Android为开发者提供了构建强大GIS应用的途径,"arcgis-runtime-samples-android-master"则是学习和掌握这个工具的宝贵资源。通过深入研究和实践,开发者可以创建出具有专业GIS功能的...

    arcgis-runtime-samples-android-100.4-master.zip

    这个“arcgis-runtime-samples-android-100.4-master.zip”压缩包包含了一系列100.5版本的示例代码,旨在帮助开发者快速理解和掌握ArcGIS Runtime for Android的开发技术。 1. **ArcGIS Runtime SDK介绍** ArcGIS ...

    vuforia-samples-core-android-7-2-21.zip

    这个"vuforia-samples-core-android-7-2-21.zip"压缩包包含了Vuforia的最新版本7.2.21的Android示例项目,旨在帮助开发者理解和实践Vuforia的各项功能。以下是对这些关键知识点的详细介绍: 1. **Vuforia SDK**: ...

    vuforia-samples-unity-9-8-11

    使用Unity2019.4打包的Vuforia Core Samples.apk ; vuforia-samples-unity-9-8-11.apk

    开源项目-Azure-Samples-azure-sdk-for-go-samples.zip

    在"Azure-Samples-azure-sdk-for-go-samples-master"目录下,你可以找到多个子目录,每个子目录代表一个特定的示例场景。这些示例涵盖了Azure服务的广泛应用,包括但不限于: 1. **虚拟机管理**:如何创建、启动、...

    vuforia-samples-advanced-android-7-1-34

    这个“vuforia-samples-advanced-android-7-1-34”压缩包包含了多个用于Android平台的高级Unity示例项目,帮助开发者深入了解Vuforia的功能和用法。 首先,我们来看看每个子文件的含义: 1. **VideoPlayback-7-1-...

    vuforia-samples-core-android-8-6-10_0.zip

    "vuforia-samples-core-android-8-6-10_0.zip"是一个包含Vuforia SDK 8.6.10版本的核心Android示例项目的压缩包。这个压缩包特别适用于开发者,尤其是那些在2020年2月期间遇到官方下载困难的情况,因为当时可能由于...

    android-samples.zip

    最后,Android 23的samples还包括了如何利用最新的API与设备硬件交互,如蓝牙、GPS、传感器等。这可以帮助开发者更好地利用手机的各种功能,开发出更具创新性的应用。 总的来说,“android-samples.zip”这个压缩包...

    vuforia-samples-core-android-ios-unity-4-0-103

    原始资源太大,381M,放在网盘里供下载。官网下载太慢,只有十几KB的速度

    Android 自带Samples

    标题中的“Android 自带Samples”指的是Android SDK中包含的一系列示例项目,这些项目展示了如何使用Android API来实现特定功能或交互。 描述中提到的"ApiDemos"是Android Samples中最为经典的一个,它几乎包含了...

    spring-android-samples

    "spring-android-samples-master"目录下的源代码包含了一系列示例应用,覆盖了上述所有功能点。通过这些案例,开发者可以了解如何在实际项目中应用Spring for Android,例如创建一个HTTP客户端,处理不同类型的HTTP...

    spring-android-samples-master

    spring-android-samples-master

    mg-samples-1.6.0.rar_mg-sampl_mg-samples-1.6_mg-samples-str_mg-s

    《MiniGUI开发示例库详解——mg-samples-1.6.0》 MiniGUI,全称微型图形用户界面,是一种轻量级的图形系统,主要用于嵌入式设备和资源有限的计算机上,提供图形用户界面的支持。它以其小巧、高效、易用的特点在...

    architecture-samples-todo-mvp_Android官方MVP架构示例_android_balllyd_源

    Android官方提供的`architecture-samples-todo-mvp`示例项目旨在帮助开发者理解和实践MVP架构。 **1. MVP架构的组成部分** - **Model(模型层)**:模型层主要负责与数据相关的操作,包括数据的获取、存储和处理。...

Global site tag (gtag.js) - Google Analytics