`
java-mans
  • 浏览: 11457123 次
文章分类
社区版块
存档分类
最新评论

使用SharedPreference进行文件操作

 
阅读更多

在前面已经说过android的文件操作的2种方式了,这次就介绍一下文件的第三种操作,这种操作只要是用来设置软件参数的。在后面还会有基于数据库的操作,这次的这种文件操作比较简单,下面就一步步的来弄下这个小实验。

1.设置界面,提供昵称,口头禅以及相应文本框,2个按钮如下图所示


下面是strings.xml文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<string name="hello">Hello World, PreferenceActivity!</string>
	<string name="app_name">参数操作</string>
	<string name="nickname">昵称</string>
	<string name="words">口头禅</string>
	<string name="button">设置</string>
	<string name="reset">显示设置</string>
	<string name="success">参数设置成功</string>
	<string name="tip">昵称和口头禅不能为空</string>
</resources>

接下来就是main.xml了,界面比较简单,该文件如下所示

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
   <TextView  
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/nickname"
    />
    <EditText
     android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/nickname"
    />
     <TextView  
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/words"
    />
    <EditText
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/words"
    />
    <LinearLayout
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <Button
     android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/button"
      android:text="@string/button"
    />
    <Button
     android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/reset"
      android:text="@string/reset"
    />
    </LinearLayout>
</LinearLayout>

2.编写activity,先保存设置

这里为了把执行效率和速度考虑在内,控件就单独拿了出来,后面通过事件监听保存设置。hnspi代表该文件的文件名称,后面是操作模式,保存之后弹出吐司,这里我没做非空控制。

private EditText username;
    private EditText userwords;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        username=(EditText)findViewById(R.id.nickname);
        userwords=(EditText)findViewById(R.id.words);
        Button saveSet=(Button)findViewById(R.id.button);
        saveSet.setOnClickListener(new View.OnClickListener() {
		
			public void onClick(View v) {
				String nickname=username.getText().toString();  //取得文本框里的值
				String words=userwords.getText().toString();
				//开始保存参数
				SharedPreferences preference=getSharedPreferences("hnspi",Context.MODE_PRIVATE);
				Editor edit=preference.edit();  //取得编辑器
				/*
				 * 通过编辑器把内容写入xml,这里首先存储在内存中,之后commit
				 * */
				edit.putString("nickname", nickname);
				edit.putString("words", words);
				edit.commit();
				Toast.makeText(PreferenceActivity.this, R.string.success, 1).show();
			}
		});

需要注意的是最后要提交(commit),否则文件不会被保存

3.取出文件的内容,上面保存的是xml.使用参数取出昵称和口头禅显示在文本框了

 Button showSet=(Button)findViewById(R.id.reset);
        showSet.setOnClickListener(new View.OnClickListener() {
		
			public void onClick(View v) {
				SharedPreferences preference=getSharedPreferences("hnspi",Context.MODE_PRIVATE);
				String nickname=preference.getString("nickname", "");
				String words=preference.getString("words", "");
				username.setText(nickname);  //设置文本框的value
				userwords.setText(words);
				
			}
		});



到这里代码就写好了,学习android你我同行,有问题给我些留言啊。下面是效果截图



分享到:
评论

相关推荐

    SharedPreference文件操作代码例子

    SharedPreference文件操作代码例子

    Android学习之文件存储读取

    前言 相信大家都知道知道,在AndroidOS中,提供了五中数据存储方式,分别是:ContentProvider存储、文件存储、SharedPreference...我们在学Java的时候都知道,Java中的IO操作来进行文件的保存和读取,Android是基于Linu

    SharedPreferences的形式在缓存中维护两个List,对其进行增删等操作

    用SharedPreferences的形式在缓存中维护两个List,并能对其进行增删改查操作,同步缓存文件

    老罗android视频开发源码和ppt经典

    4.3 http使用Post方式进行提交数据 4.4 http使用apache工具类提交数据 五、 Android解析json数据 5.1 android解析json数据(一) 5.2 android解析json数据(二) 5.3 android使用gson解析 5.4 android使用fastjson...

    Android相册应用--EasyAlbum

    5.其它细节一些的比如listview的显示控制、Bitmap的OutOfMemoryError的控制,viewswitcher的使用,布局的控制,sharedpreference的使用,handler的使用等等 由于是学习用的,开发出的东西兼容性可能不太好(没测过...

    Android存储方式实例教程

    分别是: file ,SharedPreference, SQLite, ContentProvider 各有各的优缺点 file主要存储大型文件,但需要你的sdcard中有相应用空间,比如存一个二进制文件. 操作方式与普通java相似,即打开一个FileInputStream/...

    Android学习之SharedPerference存储详解

    第二个是操作模式,目前只有MODE_PRIVATE可选,这是默认的操作模式,表示只有当前的应用可以对文件进行操作。 2.Activity类中的getPreference()方法 它只接收一个操作模式参数,因为使用这个方法会自动将类名...

    Android-AndroidDataStorage一个简洁易用并且具有高性能的Android存储库

    特色 1、实现安卓设备上的对象持久化,能存储和读取任何对象。...2、读写速度比SharedPreference等基于文件的存储方案高。 3、大量对象读写操作的场景下,使用此框架能极大提升性能,比通常的数据库方案高效。

    详解Android数据存储—使用SQLite数据库

    Android提供了3种操作数据的方式,SharedPreference(共享首选项)、文件存储以及SQLite数据库。 SQLite数据库文件被保存在/data/data/package_name/databases目录下。 一、创建和删除表 1.创建表 创建表的SQL语句...

    android-utils:包含大多数Android实用程序类

    文件操作工具类 汉字转拼音工具类 IMSI工​​具类 Json解析工具类 根据经纬度查询地址信息和根据地址信息查询经纬度 Log工具类。课参考博文: 。 网络工具类 应用安装下载相关 手机组件调用工具类 尖端服务工具类...

    storage-chooser:只需几行代码,用户就可以选择内部或外部存储中的文件

    一个漂亮而简单的目录选择器和文件选择器库,用于4​​.4+设备。 创建该库是为了将其包含在。 那里有太多的存储选择器,但是这一选择实在太重要了 :face_with_tongue: 。 易于实施,并且不需要花费很多宝贵的时间来...

    Android SharedPreferences实现记住密码和自动登录界面

    SharedPreferences介绍: SharedPreferences是Android平台上一个轻量级的存储类,主要是...但它是通过其Editor接口中的一些方法来操作SharedPreference的,用法见下面代码: Context.getSharedPreferences(String name

Global site tag (gtag.js) - Google Analytics