1 介绍
无需权限,直接使用
Android 提供android.content.SharedPreferences
接口,该接口提供允许您保存和检索内置数据类型的持久键 - 值
对的框架。
共享首选项将信息存储在XML文件中,该文件位于Android设备的数据文件中,以应用包名称作为子文件夹,例如: 包名为 net.920vip.demo
, 怎在系统文件夹/data/data/net.920vip.demo/shared_prefs/
创建新的xml文件:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<map>
<string name="prefrence1">Hi</string>
<string name="prefrence2">Hello</string>
</map>
修改共享首选项,需要使用SharedPreferences.Editor
支持的数据类型有:
-
boolean
-
float
-
int
-
long
-
String
2 检索共享首选项
contains(String key)
:检查指定首选项是否安博涵特定首选项。参数指定要检查的首选项的名称(key)。
-
通俗来讲就是检查有没有相关 键,是否存在
-
返回值为:true/false
sharedPreferences1.contains("int")
getXXX(String key, xxx defValue)
:从首选项中检索指定数据类型的值(XXX指数据类型,如boolean、String、float)。此方法将要检索的首相项的名称(key)作为其第一个参数。第二个参数表示要返回的值。
3 导包
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
4 写数据
SharedPreferences sharedPreferences = getSharedPreferences("mySharedFile", MODE_PRIVATE);
SharedPreferences.Editor edit = sharedPreferences.edit();
edit.putBoolean("bollean", false);
edit.putFloat("float", 10F);
edit.putInt("int", 6);
edit.putLong("long", 10L);
edit.putString("string", "10");
edit.commit();
5 读数据
System.out.println("获取首选项中的数据");
SharedPreferences sharedPreferences1 = getSharedPreferences("mySharedFile", MODE_PRIVATE);
boolean bollean1 = sharedPreferences1.getBoolean("boolean",false);
float float1 = sharedPreferences1.getFloat("float", 0f);
int int1 = sharedPreferences1.getInt("int", 0);
long long1 = sharedPreferences1.getLong("logn", 0L);
String string = sharedPreferences1.getString("string"," ");
System.out.println(bollean1);
System.out.println(float1);
System.out.println(int1);
System.out.println(long1);
System.out.println(string);
6 删除数据
edit.clear();
edit.remove("int");
<h2><a id="1__0"></a>1 介绍</h2>
<p>无需权限,直接使用</p>
<p>Android 提供<code>android.content.SharedPreferences</code>接口,该接口提供允许您保存和检索内置数据类型的持久<code>键 - 值</code>对的框架。</p>
<p>共享首选项将信息存储在XML文件中,该文件位于Android设备的数据文件中,以应用包名称作为子文件夹,例如: 包名为 <code>net.920vip.demo</code> , 怎在系统文件夹<code>/data/data/net.920vip.demo/shared_prefs/</code> 创建新的xml文件:</p>
<pre><div class="hljs"><code class="lang-xml"><span class="hljs-meta"><?xml version="1.0" encoding="utf-8" standalone="yes" ?></span>
<span class="hljs-tag"><<span class="hljs-name">map</span>></span>
<span class="hljs-tag"><<span class="hljs-name">string</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"prefrence1"</span>></span>Hi<span class="hljs-tag"></<span class="hljs-name">string</span>></span>
<span class="hljs-tag"><<span class="hljs-name">string</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"prefrence2"</span>></span>Hello<span class="hljs-tag"></<span class="hljs-name">string</span>></span>
<span class="hljs-tag"></<span class="hljs-name">map</span>></span>
</code></div></pre>
<p>修改共享首选项,需要使用<code>SharedPreferences.Editor</code></p>
<p>支持的数据类型有:</p>
<ul>
<li>
<p>boolean</p>
</li>
<li>
<p>float</p>
</li>
<li>
<p>int</p>
</li>
<li>
<p>long</p>
</li>
<li>
<p>String</p>
</li>
</ul>
<h2><a id="2__28"></a>2 检索共享首选项</h2>
<p><code>contains(String key)</code>:检查指定首选项是否安博涵特定首选项。参数指定要检查的首选项的名称(key)。</p>
<ul>
<li>
<p>通俗来讲就是检查有没有相关 键,是否存在</p>
</li>
<li>
<p>返回值为:true/false</p>
</li>
</ul>
<pre><div class="hljs"><code class="lang-java">sharedPreferences1.contains(<span class="hljs-string">"int"</span>)
</code></div></pre>
<p><code>getXXX(String key, xxx defValue)</code>:从首选项中检索指定数据类型的值(XXX指数据类型,如boolean、String、float)。此方法将要检索的首相项的名称(key)作为其第一个参数。第二个参数表示要返回的值。</p>
<h2><a id="3__42"></a>3 导包</h2>
<pre><div class="hljs"><code class="lang-java"><span class="hljs-keyword">import</span> android.content.SharedPreferences;
<span class="hljs-keyword">import</span> android.content.SharedPreferences.Editor;
</code></div></pre>
<h2><a id="4__49"></a>4 写数据</h2>
<pre><div class="hljs"><code class="lang-java"><span class="hljs-comment">// 创建应用级首选项</span>
<span class="hljs-type">SharedPreferences</span> <span class="hljs-variable">sharedPreferences</span> <span class="hljs-operator">=</span> getSharedPreferences(<span class="hljs-string">"mySharedFile"</span>, MODE_PRIVATE);
SharedPreferences.<span class="hljs-type">Editor</span> <span class="hljs-variable">edit</span> <span class="hljs-operator">=</span> sharedPreferences.edit();
<span class="hljs-comment">// putXXX(String key, XXX value) 仅在调用commit()方法或者apply()方法时,值被写回</span>
edit.putBoolean(<span class="hljs-string">"bollean"</span>, <span class="hljs-literal">false</span>);
edit.putFloat(<span class="hljs-string">"float"</span>, <span class="hljs-number">10F</span>);
edit.putInt(<span class="hljs-string">"int"</span>, <span class="hljs-number">6</span>);
edit.putLong(<span class="hljs-string">"long"</span>, <span class="hljs-number">10L</span>);
edit.putString(<span class="hljs-string">"string"</span>, <span class="hljs-string">"10"</span>);
<span class="hljs-comment">// 将来自编辑器的变更提交到SharedPreferences对象。此方法执行修改。如果连个编辑器在同时修改首选项,则最后一个调用commit()方法编辑器将反映最终值。</span>
edit.commit();
</code></div></pre>
<h2><a id="5__66"></a>5 读数据</h2>
<pre><div class="hljs"><code class="lang-java"><span class="hljs-comment">// 获取首选项中的数据</span>
System.out.println(<span class="hljs-string">"获取首选项中的数据"</span>);
<span class="hljs-type">SharedPreferences</span> <span class="hljs-variable">sharedPreferences1</span> <span class="hljs-operator">=</span> getSharedPreferences(<span class="hljs-string">"mySharedFile"</span>, MODE_PRIVATE);
<span class="hljs-type">boolean</span> <span class="hljs-variable">bollean1</span> <span class="hljs-operator">=</span> sharedPreferences1.getBoolean(<span class="hljs-string">"boolean"</span>,<span class="hljs-literal">false</span>);
<span class="hljs-type">float</span> <span class="hljs-variable">float1</span> <span class="hljs-operator">=</span> sharedPreferences1.getFloat(<span class="hljs-string">"float"</span>, <span class="hljs-number">0f</span>);
<span class="hljs-type">int</span> <span class="hljs-variable">int1</span> <span class="hljs-operator">=</span> sharedPreferences1.getInt(<span class="hljs-string">"int"</span>, <span class="hljs-number">0</span>);
<span class="hljs-type">long</span> <span class="hljs-variable">long1</span> <span class="hljs-operator">=</span> sharedPreferences1.getLong(<span class="hljs-string">"logn"</span>, <span class="hljs-number">0L</span>);
<span class="hljs-type">String</span> <span class="hljs-variable">string</span> <span class="hljs-operator">=</span> sharedPreferences1.getString(<span class="hljs-string">"string"</span>,<span class="hljs-string">" "</span>);
System.out.println(bollean1);
System.out.println(float1);
System.out.println(int1);
System.out.println(long1);
System.out.println(string);
</code></div></pre>
<h2><a id="6__86"></a>6 删除数据</h2>
<pre><div class="hljs"><code class="lang-java">edit.clear(); <span class="hljs-comment">//清空文件的内容 如:退出登录</span>
edit.remove(<span class="hljs-string">"int"</span>); <span class="hljs-comment">// 根据key移除某一个信息</span>
</code></div></pre>
留言