安卓学习-数据存储与IO-SharedPreferences

运行完后,可以在DDMS,看到这个xml文件

MainActivity.java

public class MainActivity extends Activity implements OnClickListener{

    EditText editText1;
    TextView textView3;
    SharedPreferences pre;
    Editor editor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editText1=(EditText)findViewById(R.id.editText1);
        textView3=(TextView)findViewById(R.id.textView3);

        pre=getSharedPreferences("myPre222", Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);
        editor=pre.edit();

        Button btn1=(Button)findViewById(R.id.button1);
        Button btn2=(Button)findViewById(R.id.button2);
        btn1.setOnClickListener(this);
        btn2.setOnClickListener(this);
    }

    public void onClick(View v) {
        if(v==findViewById(R.id.button1)){
            editor.putString("name", editText1.getText()+"");
            editor.commit();
        }else if(v==findViewById(R.id.button2)){
            String name=pre.getString("name", "");
            textView3.setText(name);
        }
    }
}

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText1"
        android:layout_alignBottom="@+id/editText1"
        android:layout_alignParentLeft="true"
        android:text="姓名"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="15dp"
        android:layout_toRightOf="@+id/textView1"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/editText1"
        android:layout_marginTop="22dp"
        android:text="写入" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button1"
        android:layout_marginTop="36dp"
        android:text="读取" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button2"
        android:layout_alignBottom="@+id/button2"
        android:layout_marginLeft="11dp"
        android:layout_toRightOf="@+id/button2"
        android:text="值:"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView2"
        android:layout_alignBottom="@+id/textView2"
        android:layout_centerHorizontal="true"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>

别的应用程序来读取这个xml

try {
                    Context context=createPackageContext("com.example.fffff", Context.CONTEXT_IGNORE_SECURITY);
                    SharedPreferences pre=context.getSharedPreferences("myPre222", Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);
                    String name=pre.getString("name", "");
                    Toast.makeText(MainActivity.this, name, Toast.LENGTH_SHORT).show();
                } catch (NameNotFoundException e) {
                    // TODO 自动生成的 catch 块
                    e.printStackTrace();
                }

MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE已经在Android 4.2(API level 17)废弃了,因为这样危险,安全性不高。

时间: 2024-10-15 00:34:03

安卓学习-数据存储与IO-SharedPreferences的相关文章

Android学习笔记十六.Android数据存储与IO.SharedPreferences

SharedPreferences 对于应用程序的数据输入.输出,如果是应用程序只是少量数据需要保存,那么使用普通文件就可以了(SharedPrefereces);但如果应用程序有大量数据需要存储.访问,就需要借助数据库了.Android系统内置了SQLite数据库,SQLite数据库是一个真正轻量级的数据库,它没有后台进程,整个数据库就对应于一个文件. 1.SharedPreferences简介 (1)概念:SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此它保存

安卓学习-数据存储与IO-File存储

1.data目录下 MainActivity.java public class MainActivity extends Activity implements OnClickListener { EditText editText1; TextView textView3; SharedPreferences pre; Editor editor; @Override protected void onCreate(Bundle savedInstanceState) { super.onC

安卓学习-数据存储与IO-Sqlite

直接用sql语句实现 ,添加.删除.修改 MainActivity.java public class MainActivity extends Activity implements OnClickListener{ Button btn1; Button btn2; Button btn3; EditText editText1; EditText editText2; SQLiteDatabase db; ListView listView1; Cursor cursor; @Overri

Android开发7:简单的数据存储(使?SharedPreferences)和文件操作

前言 啦啦啦~大家好,又见面啦~ 本篇博文讲和大家一起完成一个需要注册.登录的备忘录的,一起学习 SharedPreferences 的基本使用,学习 Android 中常见的文件操作方法,复习 Android 界面编程. 直接进入正题~ 基础知识 1.SharedPreferences 的使用 使用SharedPreferences储存用户名和密码,SharedPreferences是直接处理xml文件,不需要做字符串分割,存储效率会比使用内部存储,和外部存储存储用户名和密码高. (1) Sh

Android笔记----Android的数据存储和IO操作

使用SharedPreferences File存储 SQLite数据库           使用SharedPreferences 1.1 SharedPreferences与Editor简介 应用程序有少量的数据需要保存,而且这些数据的格式很简单,都是普通的字符串.标量类型的值等,比如应用程序的各种配置信息,对于这种数据,Android提供了SharedPreferences. SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此它保存的数据主要是简单类型的key

【Android】数据存储-java IO流文件存储

1.数据持久化:将在内存中的瞬时数据保存在存储设备中.瞬时数据:设备关机数据丢失.持久化技术提供一种机制可以让数据在瞬时状态和持久状态之间转换. 2.Android中简单的三种存储方式:文件存储.SharedPreference 存储以及数据库存储. 1.文件存储 :不对数据作任何处理,将数据原封不动地存储到文件中,适合存储一些简单的文本数据和二进制数据. a.将数据存储到文件中 Context类提供了一个openFileOutput()方法,可以用于将数据存储到文件中.这个方法接收两个参数,第

Android数据存储(1):SharedPreferences

Android系统提供了5种方式用来存储应用数据(application data),它们分别是SharedPreferences(共享参数),Internal Storage(内部存储),External Storage(外部存储),SQLite Databases(数据库存储),Network Connection(网络存储),可以根据不同的情景使用相应的存储方式. 下图是从Android 5.0 官方文档的Data Storage的部分截图: 从上图可知SharedPreferences主

Android数据存储之IO

Android开发中免不了数据本地的存储,今天我们来说一说如何利用IO流来进行数据存储. 这里我们通过模拟一个QQ登陆界面的小demo来实际操作IO流. 功能描述:点击按钮能够保存用户输入的用户名和密码,当点击记住密码时,亦能在应用第二次打开时,回显用户名和密码 1.这里布局文件的代码就不贴了,看效果图 2.MainActivity.java package com.example.viewswitchtest; import java.io.BufferedReader; import jav

Android学习——数据存储之文件存储

将数据存储到文件中并读取数据 1.新建FilePersistenceTest项目,并修改activity_main.xml中的代码,如下:(只加入了EditText,用于输入文本内容,不管输入什么按下back键就丢失,我们要做的是数据被回收之前,将它存储在文件中) 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.a