第6章Android数据存储本章内容Android的SharedPreferencesAndroid的文件读写Android的SQLite数据库本章目标了解Android数据存储方式掌握SharedPreferences的使用掌握文件读写的使用掌握SQLite数据库的使用1.Android数据存储Android为应用软件提供了一种向其他应用软件开放私有数据的标准方式。Android数据存储描述了应用软件存储和获取数据、向其他应用软件开放数据、从其他应用软件请求数据并将其开放的方式1.Android数据存储Android数据存储分为以下4种方式:1.SharedPreferences存储2.文件(Files)存储3.数据库(SQLiteDatabases)存储4.网络存储2.SharedPreferences数据储存SharedPreferences是Android提供的一种用于存储部分简单配置信息(如默认的欢迎语、登录用户名和密码等)的机制,以键值对方式存储,便于读取和存入。2.SharedPreferences数据储存?xmlversion=1.0encoding=utf-8?LinearLayoutxmlns:android=:orientation=verticalandroid:layout_width=fill_parent”android:layout_height=wrap_contentLinearLayoutxmlns:android=:orientation=horizontalandroid:layout_width=fill_parent”android:layout_height=fill_parentandroid:layout_marginLeft=20dp”android:layout_marginRight=20dpTextViewandroid:layout_width=wrap_contentandroid:text=用户名称:”android:textSize=20dpandroid:layout_height=wrap_content/EditTextandroid:id=@+id/userNameandroid:layout_width=fill_parent”android:layout_height=wrap_content//LinearLayoutLinearLayoutxmlns:android=:orientation=horizontalandroid:layout_width=fill_parent”android:layout_height=fill_parentandroid:layout_marginLeft=20dp”android:layout_marginRight=20dpTextViewandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:text=密码:”android:textSize=20dp/EditTextandroid:id=@+id/passwordandroid:password=true”android:layout_width=fill_parent”android:layout_height=wrap_content//LinearLayoutLinearLayoutandroid:orientation=horizontal”android:layout_width=fill_parentandroid:layout_height=fill_parentandroid:layout_marginTop=10dpButtonandroid:id=@+id/btnSave”android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:text=登录//LinearLayout/LinearLayout使用SharedPreferences存储登录的用户名和密码:用户登录的布局文件publicclassSharedPreferencesActivityextendsActivityimplementsOnClickListener{privateSharedPreferencesmySharedPreferences;//定义SharedPreferences对象privateEditTextuserName;privateEditTextpassword;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);ButtonbtnSave=(Button)findViewById(R.id.btnSave);userName=(EditText)findViewById(R.id.userName);password=(EditText)findViewById(R.id.password);//获得一个SharedPreferences对象mySharedPreferences=getSharedPreferences(SETTING_INFOS,0);StringuserNameStr=mySharedPreferences.getString(userName,);StringpasswordStr=mySharedPreferences.getString(password,);userName.setText(userNameStr);password.setText(passwordStr);btnSave.setOnClickListener(this);}@OverridepublicvoidonClick(Viewv){mySharedPreferences=getSharedPreferences(SETTING_INFOS,0);SharedPreferences.Editoreditor=mySharedPreferences.edit();editor.putString(userName,userName.getText().toString()).putString(password,password.getText().toString());editor.commit();newAlertDialog.Builder(this).setTitle(登录成功.).setPositiveButton(确定,null).show();}}2.SharedPreferences数据储存在Eclipse中切换到DDMS视图的FileExplorer标签,找到/data/data目录中对应项目下的shared_prefs文件夹,SharedPreferences存储的数据即存放在此文件夹中。3.文件数据存储SharedPreferences存储方式简单易行,只适合存储较简单的数据,需要存储更多的数据时可以选择文件存储方式。文件存储是一种较常用的方法,Android中读取/写入文件的方法与Java中实现I/O的程序相同,使用openFileInput()方法和openFileOutput()方法读取设备中的文件。3.文件数据存储?xmlversion=1.0encoding=utf-8?LinearLayoutxmlns:android=:orientation=verticalandroid:layout_width=fill_parentandroid:layout_height=wrap_contentLinearLayoutxmlns:android=:orientation=horizontalandroid:layout_width=fill_parentandroid:layout_height=fill_parentandroid:layout_marginLeft=20dp”android:layout_marginRight=20dpTextViewandroid:layout_width=wrap_content”android:layout_height=wrap_contentandroid:text=产品名称:”android:textSize=20dp/EditTextandroid:id=@+id/productName”android:layout_width=fill_parentandroid:layout_height=wrap_content//LinearLayoutLinearLayoutandroid:orientation=horizontal”android:layout_width=fill_parentandroid:layout_height=fill_parentandroid:layout_marginTop=10dpButtonandroid:id=@+id/btnSave”android:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:text=搜索//LinearLayout/LinearLayout使用SharedPreferences存储登录的用户名和密码:搜索产品的布局文件publicclassFileActivityextendsActivityimplementsOnClickListener{privateEditTextproductName;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);ButtonbtnSave=(Button)findViewById(R.id.btnSave);productName=(EditText)findViewById(R.id.productName);try{InputStreamis=openFileInput(file.txt);byte[]buffer=newbyte[100];intbyteCount=is.read(buffer);StringproductNameStr=newString(buffer,0,byteCount,utf-8);productName.setText(productNameStr);is.close();}catch(Exceptione){e.printStackTrace();}btnSave.setOnClickListener(this);}@OverridepublicvoidonClick(Viewarg0){try{OutputStreamos=openFileOutput(file.t