wemall app商城源码Android数据的SharedPreferences储存方式

石光珠
• 阅读 2318
   wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改。本文分享wemall app商城源码Android数据的SharedPreferences储存方式,供技术员参考学习。

   SharedPreferences:除了SQLite数据库外,SharedPreferences也是一种轻型的数据储存方式,它的本质是基于XML文件存储key-value键值对数据,通常用来储存一些简单的配置信息。SharedPreferences接口本身并没有提供写入数据的能力,而是通过SharedPreferencesde的内部接口,SharedPreferences调用edit()方法即可获取它所对应的Editor对象。实现SharedPreferences储存的步骤如下:

1、获取SharedPreferences对象
2、利用edit()方法获取Editor对象
3、通过Editor对象储存key-value键值对数据
4、通过commit()方法提交数据
例一:下面的代码储存三个数据,分别为String,Int,Boolean型,具体如下:

package com.ye_yun_lin.sharedpreferencestest;

import android.os.Bundle;
import android.preference.Preference;
import android.app.Activity;
import android.content.SharedPreferences;
import android.view.Menu;

public class MainActivity extends Activity {
    private SharedPreferences sharedPreferences;
    private SharedPreferences.Editor editor;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        sharedPreferences=getSharedPreferences("My_XML", MODE_WORLD_READABLE);
        editor=sharedPreferences.edit();
        
        editor.putString("String_key", "string");
        editor.putInt("Int_key", 3);
        editor.putBoolean("Boolean_key", true);
        
        editor.commit();
    }

}

这段代码执行完后,在/data/data/com.ye_yun_lin.SharedPrefer/shared_prefs目录下生成了一个SP.My_XML文件,一个应用可以创建多个这样的文件。用DDMS界面的导出文件按钮,导出后打开如下:

例二:记录应用程序的使用次数:
这个实例可以记住应用程序的使用次数,当用户第一次启动该程序时,系统创建SharedPreferences来记录使用次数。用户以后启动该应用程序时,系统先读取SharedPreferences中的使用次数,然后将使用次数加1.代码如下:

package com.ye_yun_lin.usecount;

import android.R.integer;
import android.os.Bundle;
import android.preference.Preference;
import android.app.Activity;
import android.content.SharedPreferences;
import android.view.Menu;
import android.widget.Toast;

public class MainActivity extends Activity {
    private SharedPreferences sharedPreferences;
    private SharedPreferences.Editor editor;
    private int count;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        sharedPreferences=getSharedPreferences("count",MODE_WORLD_WRITEABLE);
        editor=sharedPreferences.edit();
        
        count=sharedPreferences.getInt("count", 0);
        Toast.makeText(this, "该应用程序被使用了"+count+"次!", Toast.LENGTH_LONG).show();
        editor.putInt("count", ++count);
        
        editor.commit();
    }

}

例三:读写其他应用SharedPreferences。

要读或写其他程序的SharedPreferences,前提是要创建该应用程序指定相应的访问权限。比如MODE_WORLD_READABLE(只可被其他程序读),MODE_WORLD_WRITABLE(可被其他程序读或写).其步骤如下:
1、需要创建其他程序对应的Context,例如如下代码:

useContext=createPackageContext("com.ye_yun_lin.usecount", Context.CONTEXT_IGNORE_SECURITY);

上面的com.ye_yun_lin就是其他程序的包名

2、条用其他程序的Context的getSharedPreferences()即可获取相应的SharedPreferences对象
3、如果需要向其他应用的SharedPreferences数据写入数据,调用SharedPreferences的edit()方法获取相应的editor即可。
代码如下:

package comye_yun_line.useotherpreferences;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.PackageManager.NameNotFoundException;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {
    private Context useContext=null;
    private SharedPreferences preferences;
    private int count;
    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
            try {
                useContext=createPackageContext("com.ye_yun_lin.usecount", Context.CONTEXT_IGNORE_SECURITY);
            } catch (NameNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        preferences=useContext.getSharedPreferences("count", Context.MODE_WORLD_READABLE);
        count=preferences.getInt("count", 0);
        
        textView=(TextView)findViewById(R.id.textview);
        textView.setText(count+"");
    }

}

SharedPreferences对象与SQLite数据库相比,免去了创建数据库、创建表、写SQL语句等操作,相对而言更加方便简洁。但是SharedPreferences也有其自身的缺陷,比如只能储存boolean,int,string,float,long五种简单的数据类型,比如其无法进行条件查询等。所以不论SharedPreferences的数据储存多么简洁,也只能是储存方式的一种补充,而无法完全代替SQLite数据库这样的储存方式。

wemall官网地址:http://www.wemallshop.com
原文详情地址:http://Git.oschina.NET/zzunet...
wemall doraemonAndroid app商城详情地址:http://www.koahub.com/home/pr...
wemall 开源微商城 ,微信商城,商城源码,三级分销,微生鲜,微水果,微外卖,微订餐---专业的o2o系统

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
4年前
java 商城系统源码分享
目的snowflake是常见的id(编号)生成算法,由时间戳业务id机器id序列号组合而成,在电商系统(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.javamall.com.cn%2F)中,用于订单号的生成、支付单号的生成等等。本发号器主要解决在容器化的部署情
Easter79 Easter79
4年前
ssm(Spring、Springmvc、Mybatis)实战之淘淘商城
文章大纲一、淘淘商城总体架构介绍二、淘淘商城重要技术点总结三、项目常见面试题四、项目学习(all)资源下载五、参考文章一、淘淘商城总体架构介绍1\.功能架构2\.技术选型(1)Spring、SpringMVC、Mybatis(2)J
Wesley13 Wesley13
4年前
vivo 全球商城:从 0 到 1 代销业务的融合之路
代销是vivo商城已经落地的成熟业务,本文提供给各位读者vivo商城代销业务中两个异构系统业务融合的对接经验和架构思路。一、业务背景近两年,内销商城业务的发展十分迅速,vivo商城系统的架构也完成了从单体往分布式的演进。我们在vivo商城服务化方向做了很多的努力,基础服务的能力逐渐沉淀下来。2019年我们也开始在产品功
Stella981 Stella981
4年前
Android 数据存储(笔记)
Android数据存储Android中数据存储的方式有一下几种:一.SharedPreferences:            是一种轻量级的数据存储方式,主要用于保存应用的一些常用配置,以xml文件的方式存储数据,            以键值对的方式存取数据。            SharedPrefer
Stella981 Stella981
4年前
Android开发之SharedPreferences
1、使用SharedPreferences进行数据存储Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<packagename/shared\_prefs目录下。
Wesley13 Wesley13
4年前
vivo 商城架构升级
一、前言在前面几篇文章中,相信大家对vivo官网商城的前端架构演变有了一定的了解,从稳步推进前后端分离到小程序多端探索实践,团队不断创新尝试。在本文中,我们来分享一下vivo官网商城在Node服务端渲染(ServerSideRendering,SSR)方面的实战经验。本文主要围绕以下几个方面进行阐述:CSR与SSR的对比
Stella981 Stella981
4年前
Android SharedPreferences 数据升级
在应用开发时,可能随着需求或者其他因素,原设计的SharedPreferences的值需要更改,这时我们该怎么做呢?下面来看一个例子,这是我们第一版开发的,package com.laomou.demo;import android.content.SharedPreferences;public c
布局王 布局王
8个月前
鸿蒙仓颉语言开发实战教程:商城登录页
听说Pura80要来了?感觉华为的新品像下饺子一样,让人目不暇接,每隔几天就有发布会看,真不错呀。节后第一天,为了缓解大家假期的疲惫,咱们今天做点简单的内容,就是商城的登录页面。其实这一次分享的仓颉语言商城应用沿用了之前ArkTs版本的商城页面,幽蓝君认为