标签: SharePreference

Android–sharepreference总结

Android–sharepreference总结

SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。

SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下:

一个简单的存储代码如下:

SharedPreferences sharedPreferences = getSharedPreferences(“wujay”, Context.MODE_PRIVATE); //私有数据
Editor editor = sharedPreferences.edit();//获取编辑器
editor.putString(“name”, “wujaycode”);
editor.putInt(“age”, 4);

// editor.clear;清除sharedPreferences所有内容
editor.commit();//提交修改

生成的wujay.xml文件内容如下:
<?xml version=’1.0′ encoding=’utf-8′ standalone=’yes’ ?>
<map>
<string name=”name”>wujaycode</string>
<int name=”age” value=”4″ />
</map>

 

分析以下几个方法:

一、getSharedPreferences(name,mode)

方法的*个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上;

方法的第二个参数指定文件的操作模式,共有四种操作模式。

四种操作模式分别为:

1. MODE_APPEND: 追加方式存储

2. MODE_PRIVATE: 私有方式存储,其他应用无法访问

3. MODE_WORLD_READABLE: 表示当前文件可以被其他应用读取

4. MODE_WORLD_WRITEABLE: 表示当前文件可以被其他应用写入

 

二、edit()方法获取editor对象

Editor editor = sharedPreferences.edit();

editor存储对象采用key-value键值对进行存放,editor.putString(“name”, “wujaycode”);

通过commit()方法提交数据

 

与之对应的获取数据的方法:

SharedPreferences share=getSharedPreferences(“Acitivity”,Activity.MODE_WORLD_READABLE);

int i=share.getInt(“i”,0);

String str=share.getString(“str”,””);

boolean flag=share.getBoolean(“flag”,false);

getString()第二个参数为缺省值,如果preference中不存在该key,将返回缺省值

 

如果你想要删除通过SharedPreferences产生的文件,可以通过以下方法:

File file= new File(“/data/data/”+getPackageName().toString()+”/shared_prefs”,”Activity.xml”);

if(file.exists()){

file.delete();

Toast.makeText(TestActivity.this, “删除成功”, Toast.LENGTH_LONG).show(); }

 

三、访问其他应用中的Preference

如果要访问其他应用中的Preference,必须满足的条件是,要访问的应用的Preference创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE权限。

举例,假如有个<package name>为com.wujay.action下面的应用使用了下面语句创建了Preference,getSharedPreferences(“wujay”, Context.MODE_WORLD_READABLE),

现在要访问该Preferences:

首先,需要创建上面的Context,然后通过Context访问Preferences,访问preference时会在应用所在包下的shared_prefs目录找到preference:

Context otherAppsContext = createPackageContext(“com.wujay.action”, Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences sharedPreferences = otherAppsContext.getSharedPreferences(“wujay”, Context.MODE_WORLD_READABLE);
String name = sharedPreferences.getString(“name”, “”);
int age = sharedPreferences.getInt(“age”, 0);

如果不通过创建Context访问其他应用的preference,可以以读取xml文件方式直接访问其他应用preference对应的xml文件,如:
File xmlFile = new File(“/data/data/<package name>/shared_prefs/itcast.xml”);//<package name>应替换成应用的包名。

Android studio之实现记住密码(SharePreference)

1.首先,我们都希望我们的信息可以得到储存,而不希望我们下一次上线我们原来的信息就没了,我们就要选择一种方法储存我们的信息,而AS里面也有很多的方法让我们储存我们的信息,如信息流之类的,但AS提供了一个可以令我们更加便捷存储我们信息的工具,就是SharePreference存储,他的使用十分方便,也很容易理解,有点类似于C++的STL里面的mulstiset.

2.如果我们要学习一个器件,那么他有什么重要的方法就尤为重要了.

a.首先它的添加方式只有MODE_PRIVATE,即是它只能在原文件末尾追加,而不能覆盖原文件

b.SharePreference.editor editor=getSharedPreferences(“文件名”,模式).editor这样我们就创建好了一个SharePrefence编辑器了,需要注意的是我们所有的这种类型的文件都是储存在一个默认的路径的,所以我们不需要增加文件路径,如果需要查看,我们只需要打开Tool里面的Device Monitor里面的某一项文件就行,至于具体到那个我就不说明了,如何往里面增加内容呢,也很简单,只需要调用.put类型(“键值”,”内容”),编辑完后,再调用.apply()就设置完成了.

c.而如何在里面拿值了,其实模式基本一样,SharePreference editor=getSharedPreferences(“文件名”,模式),然后知道键值和类型就可以通过.get类型(“键值”,”如果不存在此键值用这个字符串的内容代替”);

3.我们知道这些之后那么就很好实现了

package activitytest.example.com.file;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.Preference;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class MainActivity extends AppCompatActivity {

private Button button;
private EditText Name;
private EditText Passage;
private CheckBox checkBox;
private SharedPreferences sharedPreferences;
private SharedPreferences.Editor editor;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.button);
Name=(EditText)findViewById(R.id.nameedit);
Passage=(EditText)findViewById(R.id.password);
checkBox=(CheckBox)findViewById(R.id.pass);
sharedPreferences= PreferenceManager.getDefaultSharedPreferences(this);
boolean pang=sharedPreferences.getBoolean(“remember_password”,false);
if(pang)
{
Name.setText(sharedPreferences.getString(“Name”,””));
Passage.setText(sharedPreferences.getString(“Password”,””));
checkBox.setChecked(true);
}
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editor=sharedPreferences.edit();
String tempname=Name.getText().toString();
String temppass=Passage.getText().toString();
if(tempname.equals(“GDZC”)&&temppass.equals(“123456”))
{
if(checkBox.isChecked())
{
editor.putString(“Name”,tempname);
editor.putString(“Password”,temppass);
editor.putBoolean(“remember_password”,true);
Toast.makeText(MainActivity.this,”success”,Toast.LENGTH_SHORT).show();
}
else {
editor.clear();
Toast.makeText(MainActivity.this,”No”,Toast.LENGTH_SHORT).show();
}
editor.apply();
}
}
});
}
布局我就不列出来了

友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速