Android数据持久化之二:SharedPreferences 存储(下)

本文介绍如何使用SharedPreferences在Android应用中存储和读取简单类型的数据,包括字符串、整型和布尔值,并提供了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      上一节我们实现Android的第二种存储方式:SharedPreferences存储,但是只写了一个保存,今天把查询也协商,实现保存,查询功能。

理论上一节都有了,直接上代码了:


效果图:



activity_main.xml中的代码:

<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/saveData"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="保存" />

    <Button
        android:id="@+id/lookData"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="查看数据" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="数据:" />

        <EditText
            android:id="@+id/editText1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10" >

            <requestFocus />
        </EditText>
    </LinearLayout>

    <Button
        android:id="@+id/clearData"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="清空数据" />

</LinearLayout>

MainActivity中的代码:

package com.example.sharedpreferencesdemo2;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.os.Build;

public class MainActivity extends Activity implements OnClickListener {

	private Button saveData;
	private Button lookData;
	private Button clearData;
	private EditText editText;

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

		saveData = (Button) findViewById(R.id.saveData);
		lookData = (Button) findViewById(R.id.lookData);
		clearData = (Button) findViewById(R.id.clearData);
		editText = (EditText) findViewById(R.id.editText1);
		saveData.setOnClickListener(this);
		lookData.setOnClickListener(this);
		clearData.setOnClickListener(this);
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch (v.getId()) {
		case R.id.saveData:
			/**
			 * 1、获取SharedPreferences.Editor 对象
			 */
			SharedPreferences.Editor editor = getSharedPreferences("person",
					MODE_PRIVATE).edit();
			/**
			 * 2、向 SharedPreferences.Editor 对象中添加数据
			 */
			editor.putString("name", "张三");
			editor.putInt("age", 10);
			editor.putBoolean("childen", true);
			/**
			 * 3、调用 commit()方法将添加的数据提交,完成数据存储操作
			 */
			editor.commit();
			Toast.makeText(MainActivity.this, "保存数据完成", 1).show();
			break;
		case R.id.lookData:
			/**
			 * 1、获取SharedPreferences.Editor 对象
			 */
			SharedPreferences pref = getSharedPreferences("person",
					MODE_PRIVATE);
			/**
			 * 2、从 SharedPreferences.Editor 对象中获取数据
			 */
			String name = pref.getString("name", "");
			int age = pref.getInt("age", 0);
			boolean child = pref.getBoolean("child", false);
			/**
			 * 3、将数据放到editText中展示
			 */
			editText.setText("name=" + name + ", age=" + age + ", child="
					+ child);
			Toast.makeText(MainActivity.this, "获取数据完成", 1).show();
			break;

		case R.id.clearData:
			editText.setText("");
			Toast.makeText(MainActivity.this, "清空数据完成", 1).show();
			break;
		default:
			break;
		}

	}

}

项目下载:

SharedPreferences 存储demo下载


保存前:


保存后:


数据:





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值