数据存储方式(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下载
------------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>