下面我们来介绍在android手机中存储数据和文件的第二种方式:共享参数(sharedpreferences)方式。这种方式是读写键值对(key-value),适合存放一些信息量比较少的内容(基本类型变量)。
整体思路:新建一个MySharedpreference类,在这个类中定义一个saveMessage方法,将两个字符串存放于存储介质中,并返回是否存储成功,在这个类中定义一个getMessage方法,在这个方法中从共享参数中获得两个字符串,并返回一个map类型。创建一个继承AndroidTestCase的单元测试类MyTest,在这个类中定义一个save方法,在这个方法中实例化一个MySharedpreference对象,并调用里面的saveMessage方法,将两个字符串以共享参数的形式存储,在这个类中定义一个find方法,在这个方法中实例化一个MySharedpreference对象,并调用里面的getMessage方法,得到一个map类型的数据,将这个map类型的数据输出。注意:在清单文件中写单元测试的注册。并建议使用模拟器来测试,可以比较方便的查看数据存放的位置。
MySharedpreference.java文件:
public class MySharedpreference { private Context context; public MySharedpreference(Context context){ this.context=context; } public boolean saveMessage(String name,String pswd){ boolean flag=false; // 定义文件名称的时候不允许写后缀名,定义为私有方式 SharedPreferences sharedPreferences=context.getSharedPreferences("userinfo", Context.MODE_PRIVATE); // 对数据进行编辑,返回editor对象 SharedPreferences.Editor editor =sharedPreferences.edit(); editor.putString("name", name); editor.putString("pswd", pswd); flag=editor.commit();//将数据持久化到存储介质中 return flag; } public Map<String, Object> getMessage(){ Map<String, Object> map=new HashMap<String, Object>(); SharedPreferences sharedPreferences=context.getSharedPreferences("userinfo", Context.MODE_PRIVATE); String name=sharedPreferences.getString("name", "");//如果取不到,那默认值为空 String pswd=sharedPreferences.getString("pswd", ""); map.put("name", name); map.put("pswd", pswd); return map; } }MyTest.java文件:
public class MyTest extends AndroidTestCase { private String TAG="MyTest"; public MyTest(){ } public void save(){ Context context=getContext(); MySharedpreference mySharedpreference=new MySharedpreference(context); boolean flag=mySharedpreference.saveMessage("damin", "123"); Log.i(TAG,"-->>"+flag); } public void find(){ Context context=getContext(); MySharedpreference sharedpreference=new MySharedpreference(context); Map<String, Object> map=sharedpreference.getMessage(); Log.i(TAG, "-->>"+map.toString()); } }AndroidManifest.xml文件:
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.android_sharedpreference" > </instrumentation> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <uses-library android:name="android.test.runner"/> <activity android:name="com.example.android_sharedpreference.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>