数据存储方式(IO-SharedPreferences)

数据存储方式:
1.文件
2.SharedPreferences
3.Sqlite
4.ContentProvider
5.网络


1.文件
<1>读取Assets中的文件数据(可以建文件夹)
getResoures().getAssets().open("fileName");
<2>读取raw中的文件数据(只能包含文件)
getResources().openRawResource(R.id.fileName);
<3>读写内部存储、外部存储的文件数据
2.SharedPreferences(存放配置信息)
<1>基本的存储
<2>读写其他应用的SharedPreferences
<3>PreferenceActivity   PreferenceFragment
①.新建类继承PreferenceActivity
②.新建布局文件xml/myPreferences.xml
③.通过addPreferencesFromResource指定布局文件
④.得到值:getPreferenceManager().findPreference("");


1.引导页面(出现第一次)
2.项目中添加设置界面
控制:引导页面
控制:动画 声音(MediaPlayer)
3.将questions.db下载

数据存储方式(IO-SharedPreferences)



------------MainActivity.java

package com.zking.administrator.g160628_android15_data;


import android.content.Context;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;


import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;


public class MainActivity extends AppCompatActivity {


    private EditText et_main_content;
    private EditText et_main_name;
    private String sdCard;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et_main_content = (EditText) findViewById(R.id.et_main_content);
        et_main_name = (EditText) findViewById(R.id.et_main_name);


        //获取手机内存卡的路径
        if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
            sdCard = Environment.getExternalStorageDirectory().getAbsolutePath();
        }




    }
    public void save(View view){
        String content=et_main_content.getText().toString();
        String fileName=et_main_name.getText().toString();
        //io
        //写,输出流
        try {
            //FileOutputStream fos=openFileOutput(fileName, Context.MODE_PRIVATE);
            FileOutputStream fos=new FileOutputStream(sdCard+"/"+fileName);
            fos.write(content.getBytes());
            fos.close();
            Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public void read(View view){
        String fileName=et_main_name.getText().toString();
        //读:输入流
        try {
           // FileInputStream fis=openFileInput(fileName);
            FileInputStream fis=new FileInputStream(sdCard+"/"+fileName);
            byte buf[]=new byte[1024];
            int len=0;
            StringBuffer s=new StringBuffer();
            while((len= fis.read(buf))!=-1){
                s.append(new String(buf,0,len));
            }
            et_main_content.setText(s);
            fis.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

------LoginActivity.java

package com.zking.administrator.g160628_android15_data;


import android.content.Context;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;


public class LoginActivity extends AppCompatActivity {


    private EditText et_login_uname;
    private EditText et_login_upass;
    private SharedPreferences sp;
    private SharedPreferences.Editor editor;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        et_login_uname = (EditText) findViewById(R.id.et_login_uname);
        et_login_upass = (EditText) findViewById(R.id.et_login_upass);
        sp = getSharedPreferences("loginInfo", Context.MODE_PRIVATE);
        editor = sp.edit();


        //获取数据
        String uname=sp.getString("uname","");
        String upass=sp.getString("upass","");
        et_login_uname.setText(uname);
        et_login_upass.setText(upass);
    }
    public void login(View view){
        //uname=amdin;upass=123456
        String uname=et_login_uname.getText().toString();
        String upass=et_login_upass.getText().toString();
        Toast.makeText(this, "跳转页面", Toast.LENGTH_SHORT).show();
        editor.putString("uname",uname);
        editor.putString("upass",upass);
        //细节:
        editor.commit();
    }
}

---------SettingActivity.java

package com.zking.administrator.g160628_android15_data;


import android.os.Bundle;
import android.os.PersistableBundle;
import android.preference.PreferenceActivity;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;


/**
 * Created by Administrator on 2017/6/23 0023.
 */


public class SettingActivity extends PreferenceActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //指定XML文件
        addPreferencesFromResource(R.xml.setting);
    }
}




=---------------activity_login.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.zking.administrator.g160628_android15_data.LoginActivity">


    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入用户名"
        android:id="@+id/et_login_uname"
        />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入密码"
        android:id="@+id/et_login_upass"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="登录"
        android:onClick="login"
        />
</LinearLayout>


----------activity_main.java

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.zking.administrator.g160628_android15_data.MainActivity">


    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/et_main_name"
        />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:lines="5"
        android:id="@+id/et_main_content"
        />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="保存"
            android:onClick="save"
            android:layout_weight="1"
            />
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="打开"
            android:onClick="read"
            android:layout_weight="1"
            />
    </LinearLayout>




</LinearLayout>