Android快速使用Shareprefences
调用SharePrefence都是分几步走的
1.获取一个实例
SharedPreferences sharedPreferences = getSharedPreferences("share_file",MODE_PRIVATE);
2.设置编辑器
SharedPreferences.Editor editor=sp.edit();
3.存入数据
editor.putString("username", "root");
4.提交数据
editor.commit();
这样基本上就完成了
1.
SharePrefence是用来保存少量数据的方式,如保存程序配置信息,
具体例子:判断是否第一次打开应用,是的话可以可以跳转到引导页面,不是的话可以跳转到活动页面
/
* 欢迎界面
* 1.在开始界面停留三秒
* 2.然后判断是否第一次打开页面
* 2.1第一次打开就打开新手引导页面
* 2.2不是第一次打开则直接跳转到主界面
/
public class StartActivity extends Activity {
private SharedPreferences sp;
private Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_weclome);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
intent = new Intent();
sp = getSharedPreferences("config", MODE_PRIVATE);
Boolean Tag = false;
if (Tag == sp.contains("first")) {
intent.setClass(StartActivity.this, ImageActivity.class);
} else {
intent.setClass(StartActivity.this, LoreActivity.class);
}
sp.edit().putBoolean("first", true).commit();
startActivity(intent);
finish();
}
}, 3000);
}
}
具体用法
package android.content;
import java.util.Map;
import java.util.Set;
public interface SharedPreferences {
public interface OnSharedPreferenceChangeListener {
/监听Shareprefences变化,当key变化时,做处理/
void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key);
}
public interface Editor {
/用于存储数据的方法/
Editor putString(String key, String value);
Editor putStringSet(String key, Set<String> values);
Editor putInt(String key, int value);
Editor putLong(String key, long value);
Editor putFloat(String key, float value);
Editor putBoolean(String key, boolean value);
/移除某一项/
Editor remove(String key);
/清空的方法/
Editor clear();
/同步保存更改的方法/
boolean commit();
/异步保存到磁盘,原子提交,性能更高,不保证结果/
void apply();
}
/获取所有的键值对/
Map<String, ?> getAll();
/取值的方法/
String getString(String key, String defValue);
Set<String> getStringSet(String key, Set<String> defValues);
int getInt(String key, int defValue);
long getLong(String key, long defValue);
float getFloat(String key, float defValue);
boolean getBoolean(String key, boolean defValue);
/判断是否包含某个key*/
boolean contains(String key);
/编辑接口/
Editor edit();
/注册监听函数/
void registerOnSharedPreferenceChangeListener(OnSharedPreferenceChangeListener listener);
/注销监听函数/
void unregisterOnSharedPreferenceChangeListener(OnSharedPreferenceChangeListener listener);
}
Shareprefences是一个接口,提供了保存和读取数据的方法。同时可以看出Shareprefences只能存储基本数据,它的Key只能是String。
使用方法示例
SharedPreferences sp=this.getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor=sp.edit();
editor.putString("username", "root");
editor.commit();
或者
SharedPreferences sp=getPreferences(this,MODE_PRIVATE);
SharedPreferences.Editor editor=sp.edit();
editor.putString("username", "root");
editor.commit();
支持模式
- MODE_PRIVATE:只支持本程序读写
- MODE_WORLD_READABLE:允许其它应用程序读
- MODE_WORLD_WRITEABLE :允许其它应用程序写
读取数据方式
SharedPreferences sp=this.getPreferences(MODE_PRIVATE);
String username=sp.getString("username", "error");
第二个参数为默认参数,即当sp中不存在username时,返回的字符串。
创建SharedPreferences例子2:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void sharePreferences(View view) {//这个是在button里面设置onClick方法
/
* 创建Sharedpreference
/
SharedPreferences sharedPreferences=getSharedPreferences("share_file",MODE_PRIVATE);
/
创建编辑器
/
sharedPreferences.edit().putString("name","林哈哈").commit();
/
创建集合对象
*/
Set<String> set=new HashSet<>();
set.add("东方不败");
set.add("林青霞");
set.add("令狐冲");
set.add("叶孤城");
sharedPreferences.edit().putStringSet("set",set).commit();
}
}
创建成功后可以再手机data/data/目录所在包名下创建 会创建一个shared_prefs文件夹,下面会有一个share_file.xml文件
打开如下
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<set name="set">
<string>令狐冲</string>
<string>林青霞</string>
<string>叶孤城</string>
<string>东方不败</string>
</set>
<string name="name">林哈哈</string>
</map>