|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这次与以往不同我在原来的项目上新建个activity,把activity_main.xml修改为- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
- <EditText
- android:id="@+id/edit"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="Type something here"
- />
- <Button
- android:onClick="click"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="start second activity"/>
- </LinearLayout>
复制代码
把mainactivity.java修改为- package com.example.xinwei.filepersistencetest;
- import android.content.Context;
- import android.content.Intent;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.text.TextUtils;
- import android.view.View;
- import android.widget.EditText;
- import android.widget.Toast;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- public class MainActivity extends AppCompatActivity {
- private EditText edit;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- edit=(EditText)findViewById(R.id.edit);
- String inputText=load();
- if(TextUtils.isEmpty(edit.getText())){
- edit.setText(inputText);
- edit.setSelection(inputText.length());
- Toast.makeText(this, "Restoring succeeded", Toast.LENGTH_SHORT).show();
- }
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- String inputText=edit.getText().toString();
- save(inputText);
- }
- private void save(String inputText) {
- FileOutputStream out=null;
- BufferedWriter writer=null;
- try {
- out=openFileOutput("data", Context.MODE_PRIVATE);
- writer=new BufferedWriter(new OutputStreamWriter(out));
- writer.write(inputText);
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }finally {
- if(writer!=null){
- try {
- writer.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
- public String load(){
- FileInputStream in = null;
- BufferedReader reader= null;
- StringBuilder content = new StringBuilder();
- try {
- in = openFileInput("data");
- reader = new BufferedReader(new InputStreamReader(in));
- String line="";
- while((line=reader.readLine())!=null){
- content.append(line);
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }finally {
- if(reader!=null){
- try {
- reader.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return content.toString();
- }
- public void click(View v){
- Intent intent = new Intent(this,SecondActivity.class);
- startActivity(intent);
- }
- }
复制代码
mainactivity.java旁新建SecondActiviy.java空活动,修改activity_second.xml文件- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
- <Button
- android:id="@+id/save_data"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="save data"/>
- <Button
- android:id="@+id/restore_data"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="restore data"/>
- </LinearLayout>
复制代码
修改SecondActiviy.java文件- package com.example.xinwei.filepersistencetest;
- import android.content.SharedPreferences;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.Toast;
- public class SecondActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_second);
- Button button=(Button)findViewById(R.id.save_data);
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- SharedPreferences.Editor editor=getSharedPreferences("data1",MODE_PRIVATE).edit();
- editor.putString("name","Tom");
- editor.putInt("age",28);
- editor.putBoolean("married",false);
- editor.apply();
- }
- });
- restoreData();
- }
- private void restoreData() {
- Button restoreData = (Button)findViewById(R.id.restore_data);
- restoreData.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- SharedPreferences pref=getSharedPreferences("data1",MODE_PRIVATE);
- String name =pref.getString("name","");
- int age = pref.getInt("age",0);
- boolean married=pref.getBoolean("married",false);
- Toast.makeText(SecondActivity.this, name+age+married, Toast.LENGTH_SHORT).show();
- }
- });
- }
- }
复制代码 在这个文件里有存储和读取数据的逻辑,都非常简单,效果图为:
|
|