zoukankan      html  css  js  c++  java
  • Android高手进阶教程(七)之Android 中Preferences的使用!

    大家好,我们这一节讲的是Android Preferences 的学习,Preferences 在Android当中被用来记录应用,以及用户喜好等等,它可以用来保存
    简单的数据类型,如Int,Double,Boolean等。Preferences中保存的数据可以理解为Map型。我们通过PreferenceManager 以及getDefaultSharedPreferences(Context) 来获取它,比如当我们想获得整数我们可以用 getInt(String key, int defVal) .获取里面的某个键值,当我们想修改时候我们用 putInt(String key, int newVal), 最后用 edit(), 方法提交!千万不要忘记了哦~
    为了让大家跟好的理解我做了一个简单的Demo,程序主要有个TextView控件,上面写着用户使用改应用的次数。效果如下图所示:
     
    下面是实现Demo的大体步骤:
    一、新建一个Android工程命名为:PreferencesDemo。
    二、在修改main.xml布局文件,这里只是在TextView控件里加了一个id.代码如下:
    1. view plaincopy to clipboardprint?  
    2. <?xml version="1.0" encoding="utf-8"?>     
    3. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
    4.     android:orientation="vertical"    
    5.     android:layout_width="fill_parent"    
    6.     android:layout_height="fill_parent"    
    7.     >     
    8. <TextView       
    9.     android:id="@+id/text"    
    10.     android:layout_width="fill_parent"      
    11.     android:layout_height="wrap_content"      
    12.     android:text="@string/hello"    
    13.     />     
    14. </LinearLayout>    
    15. <?xml version="1.0" encoding="utf-8"?> 
    16. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    17.     android:orientation="vertical" 
    18.     android:layout_width="fill_parent" 
    19.     android:layout_height="fill_parent" 
    20.     > 
    21. <TextView    
    22.     android:id="@+id/text" 
    23.     android:layout_width="fill_parent"   
    24.     android:layout_height="wrap_content"   
    25.     android:text="@string/hello" 
    26.     /> 
    27. </LinearLayout> 
     
    三、修改PreferenceDemo.java的代码,全部代码如下:
    1. view plaincopy to clipboardprint?  
    2. package com.android.tutor;     
    3. import android.app.Activity;     
    4. import android.content.SharedPreferences;     
    5. import android.os.Bundle;     
    6. import android.preference.PreferenceManager;     
    7. import android.widget.TextView;     
    8. public class PreferencesDemo extends Activity {     
    9.     /** Called when the activity is first created. */    
    10.     @Override    
    11.     public void onCreate(Bundle savedInstanceState) {     
    12.         super.onCreate(savedInstanceState);     
    13.         setContentView(R.layout.main);     
    14.              
    15.              
    16.         SharedPreferences mPerferences = PreferenceManager     
    17.         .getDefaultSharedPreferences(this);     
    18.              
    19.         int counter = mPerferences.getInt("counter"0);     
    20.              
    21.         TextView mTextView = (TextView)findViewById(R.id.text);     
    22.              
    23.         mTextView.setText("This app has been started " + counter + " times.");     
    24.              
    25.         SharedPreferences.Editor mEditor = mPerferences.edit();     
    26.              
    27.         mEditor.putInt("counter", ++counter);     
    28.         mEditor.commit();     
    29.              
    30.     }     
    31. }    
    32. package com.android.tutor;  
    33. import android.app.Activity;  
    34. import android.content.SharedPreferences;  
    35. import android.os.Bundle;  
    36. import android.preference.PreferenceManager;  
    37. import android.widget.TextView;  
    38. public class PreferencesDemo extends Activity {  
    39.     /** Called when the activity is first created. */ 
    40.     @Override 
    41.     public void onCreate(Bundle savedInstanceState) {  
    42.         super.onCreate(savedInstanceState);  
    43.         setContentView(R.layout.main);  
    44.           
    45.           
    46.         SharedPreferences mPerferences = PreferenceManager  
    47.         .getDefaultSharedPreferences(this);  
    48.           
    49.         int counter = mPerferences.getInt("counter"0);  
    50.           
    51.         TextView mTextView = (TextView)findViewById(R.id.text);  
    52.           
    53.         mTextView.setText("This app has been started " + counter + " times.");  
    54.           
    55.         SharedPreferences.Editor mEditor = mPerferences.edit();  
    56.           
    57.         mEditor.putInt("counter", ++counter);  
    58.         mEditor.commit();  
    59.           
    60.     }  
    61. }   
    四、运行代码,实现上述效果.
    五、查看Preferences文件,首先打开命令终端:adb shell一下,然后cd data/data进入该目录,ls一下我们会发现一大堆包文件,入下图所示:
     
    cd com.android.tutor (这里是我程序的包名) /shared_prefs,ls一下会发现.xml文件如下图:
     
    打开.xml文件,格式如下(为什么这样大家自己去理解):
    view plaincopy to clipboardprint?
    <?xml version='1.0' encoding='utf-8' standalone='yes' ?>   
    <map>   
    <int name="counter" value="3" />   
    </map>  
    <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
    <map>
    <int name="counter" value="3" />
    </map>
     
    OK,今天就到此为止,以上全是个人愚见,如果有什么地方不对的,请指正,谢谢大家!
     
     
     
     

    本文出自 “Android_Tutor” 博客,请务必保留此出处http://weizhulin.blog.51cto.com/1556324/311440

  • 相关阅读:
    Unix命令大全
    vs2008 与 IE8出现的兼容性问题
    Java 创建文件、文件夹以及临时文件
    如何修改Wamp中mysql默认空密码
    PAT 乙级真题 1003.数素数
    Tags support in htmlText flash as3
    DelphiXE4 FireMonkey 试玩记录,开发IOS应用 还是移植
    10 Great iphone App Review sites to Promote your Apps!
    HTML tags in textfield
    Delphi XE4 IOS 开发, "No eligible applications were found“
  • 原文地址:https://www.cnblogs.com/xiaoran1129/p/2814041.html
Copyright © 2011-2022 走看看