新思想

SharedPreferences 文件存储

SharedPreferences

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<GridLayout 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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:columnCount="2"
    android:rowCount="9"
    tools:context="com.xiesir.example16sharedpreferences.MainActivity">

    <TextView
        android:layout_columnSpan="2"
        android:layout_gravity="fill"
        android:text="个人信息"
        android:textAlignment="center"
        android:textSize="28sp" />

    <TextView
        android:text="姓名" />
    <EditText
        android:id="@+id/etName"
        android:layout_gravity="right"
        android:gravity="right"
        android:minWidth="180dp"
        android:hint="请输入姓名" />

    <TextView
        android:text="性别" />
    <Switch
        android:id="@+id/sSex"
        android:layout_gravity="center_horizontal"
        android:minWidth="120dp"
        android:showText="true"
        android:textOff="男"
        android:textOn="女" />

    <TextView
        android:layout_gravity="center_vertical"
        android:text="颜值" />
    <RatingBar
        android:id="@+id/rbBeauty"
        style="@style/Widget.AppCompat.RatingBar.Indicator"
        android:isIndicator="false"
        android:layout_gravity="right"
        android:layout_width="wrap_content"
        android:numStars="5"
        android:rating="3.5"
        android:stepSize="0.5" />

    <TextView
        android:text="生日" />
    <EditText
        android:id="@+id/etBirthday"
        android:layout_gravity="end"
        android:gravity="right"
        android:minWidth="180dp"
        android:inputType="date"
        android:hint="请输入出生日期" />

    <TextView
        android:text="年薪" />
    <EditText
        android:id="@+id/etSalary"
        android:layout_gravity="end"
        android:gravity="right"
        android:minWidth="180dp"
        android:inputType="number"
        android:hint="请输入年薪" />

    <TextView />
    <TextView />

    <Button
        android:id="@+id/btnSave"
        android:text="保存"
        android:onClick="click" />
    <Button
        android:id="@+id/btnRead"
        android:layout_gravity="center_horizontal"
        android:text="读出"
        android:onClick="click" />
</GridLayout>

MainActivity.java:

package com.xiesir.example16sharedpreferences;

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.RatingBar;
import android.widget.Switch;

public class MainActivity extends AppCompatActivity {

    private EditText etName;
    private EditText etBirthday;
    private EditText etSalary;
    private Switch sSex;
    private RatingBar rbBeauty;

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

        etName = (EditText) findViewById(R.id.etName);
        etBirthday = (EditText) findViewById(R.id.etBirthday);
        etSalary = (EditText) findViewById(R.id.etSalary);
        sSex = (Switch) findViewById(R.id.sSex);
        rbBeauty = (RatingBar) findViewById(R.id.rbBeauty);
    }

    public void click(View v) {
        String name;
        String birthday;
        float salary;
        float beauty;
        boolean sex;
        SharedPreferences sp;

        switch (v.getId()) {
            case R.id.btnSave:
                name = etName.getText().toString();
                birthday = etBirthday.getText().toString();
                salary = Float.parseFloat(etSalary.getText().toString());
                beauty = rbBeauty.getRating();
                sex = sSex.isChecked();

                sp = getSharedPreferences("myinfo", MODE_PRIVATE);
                SharedPreferences.Editor ed = sp.edit();
                ed.putString("name", name);
                ed.putString("birthday", birthday);
                ed.putBoolean("sex", sex);
                ed.putFloat("salary", salary);
                ed.putFloat("beauty", beauty);
                ed.commit();
                break;
            case R.id.btnRead:
                sp = getSharedPreferences("myinfo", MODE_PRIVATE);
                name = sp.getString("name", "");
                birthday = sp.getString("birthday", "");
                salary = sp.getFloat("salary", 0);
                beauty = sp.getFloat("beauty", 3);
                sex = sp.getBoolean("sex", true);
                etName.setText(name);
                etBirthday.setText(birthday);
                etSalary.setText( String.valueOf(salary) );
                rbBeauty.setRating(beauty);
                sSex.setChecked(sex);
                break;
        }
    }
}

源程序下载

参考:

 

posted on 2016-05-31 01:00  新思想  阅读(326)  评论(0)    收藏  举报

导航