一、文件保存:
1,创建Button监听
2,创建一个FileService的类,用new实现一个对象service,并用save方法保存文件service.save(name,text);
3,实现这个类和方法
4FileOutputStream,创建FileOutputStream对象outStream,并用上下文对象context的openFileOutput方法
来得到对象(这种方法所得到的输出流只能将文件保存到手机自带的空间下) 传入参数:name,mode文件名和文件操作
5,使用outStream的write方法写入文件,outStream.write(name。getByte());
6,关闭输入流;
7,注意要创建上下文对象Context,并初始化
注意抛出例外,传入上下文对象
二、文件保存到SDcard:
1,和文件保存的前三步相同,主要区别在于实现 save方法
2,构建一个文件对象file,需要使用new File(File dir,String name)这个构造器,来指定文件保存在Sd的目录,和需要保存的文件名称。
其中文件保存到SD,需要使用Environment.getExternalStorageDirectory()来取得文件保存的SDcard的路径
3,要保存文件就要得到一个文件输出流对象,这个对象要用new来创建,并把要传入SDcard的信息即file传入(让输出流得到指定的保存路径和文件名)
4,写入文件,关闭输出流
5,注意要申请权限,并且不用上下文对象
注意要对是否有SDcard做判断。
三、参数的保存:SharedPerferences
1,Button控件要用到android:onClick属性来指定一个方法名称,当Button点击后方法就能执行,该方法在Button所在的Activity中进行定义。
2,为Button定义一个save方法参数为View类型。
创建一个PerferencesService类,用new实现一个对象service,定义一个service.save()方法实现参数的保存,传入参数,注意要把String类型的参数转为相应的类型。
3,save方法的定义:
要进行参数的保存,就要用到SharePerferences类提供的对象将参数保存到.xml文件中,
要用到上下文对象context.getSharedPerferences("指定存放参数文件的名称",mode)来得到这个对象
用对象提供的API往里面存放数据,调用编辑器edit API,得到编辑器对象Editor editor=perferences.deit()
然后用编辑器对象的editor.putXXX("指定的参数名称",参数值)方法,将参数保存到了SharePerferences里面,(存放在内存中)
调用提交方法editor.commit();方法,将文件保存到文件中
4,注意要传入上下文对象
四、将已保存过的参数回显到Activity
1,需要用到Map<string,string>, 定义一个返回值为键值对的函数
public Map<String ,String> getperferences(){
//创建一个键值对属性的对象params,用于取得键值
Map<String,String> params = new HashMap<String, String>();
//需要用SharedPreferences 的getXX方法就仍要创建其对象
SharedPreferences perferences = context.getSharedPreferences("filename", Context.MODE_PRIVATE);
//用getXX()方法得到保存的参数内容(参数保存时的名,如果没有保存过则为默认"")
params.put("Deferencesname",perferences.getString("Deferencesname", ""));//(参数保存时的名,参数保存时的值)
params.put("Deferencesaihao", perferences.getString("Deferencesaihao", ""));
return params;} //返回键值对
如此则实现了一个通过返回的键值对获得各项参数配置的方法。
2,把已保存的各项参数配置显示在Activity中:
在activity。java中,通过创建的service对象调用getperfencences方法得到保存参数的键值对,创建一个键值对对象params用于得到这些键值对
Map<String,String> params = service.getperferences();
得到这些键值对后,把参数填充给文本输入框,方法如下:
text.settext(params.get("参数保存到的文件名称"))
|
|