`

android基础开发之sharedPreference

 
阅读更多

SharePreference存储技术在android中主要应用于保存一些简单信息,提高用户体验性,通常用于保存用户登录信息中,下面是一个使用SharePreference存储的小示例。代码如下:

首先是部局文件: 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<TextView android:layout_width="fill_parent"
		android:layout_height="wrap_content" 
		android:text="姓名"
		android:textSize="20dp" />
	<EditText android:id="@+id/etName" 
		android:layout_width="150dp"
		android:layout_height="wrap_content" />

	<TextView android:layout_width="fill_parent"
		android:layout_height="wrap_content" 
		android:text="爱好"
		android:textSize="20dp" />
	<EditText android:id="@+id/etHabit" 
		android:layout_width="fill_parent"
		android:layout_height="wrap_content" />
	<CheckBox android:id="@+id/cbEmployee "
		 android:layout_width="fill_parent"
		 android:layout_height="wrap_content" 
		 android:text="是否工作" />
	<TextView android:layout_width="fill_parent"
		android:layout_height="wrap_content" 
		android:text="单位性质"
		android:textSize="20dp" />
	<RadioGroup android:id="@+id/rgCompanyType" 
		android:layout_width="fill_parent"
		android:layout_height="wrap_content">
		<RadioButton android:id="@+id/rbCompany1"
			android:layout_width="fill_parent" 
			android:layout_height="wrap_content"
			android:text="国营"  />
		<RadioButton android:id="@+id/rbCompany2"
			android:layout_width="fill_parent" 
			android:layout_height="wrap_content"
			android:text="私营"  />
		<RadioButton android:id="@+id/rbCompany3"
			android:layout_width="fill_parent" 
			android:layout_height="wrap_content"
			android:text="股份制" />
	</RadioGroup>

</LinearLayout>

 

 

主程序代码:

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.CompoundButton.OnCheckedChangeListener;

public class Main extends Activity implements OnCheckedChangeListener
{
	
	//定义存在文件名称
	private final String PREFERENCE_NAME = "survey";
	private EditText name;
	private EditText habit;
	private CheckBox cbEmployee;
	private RadioGroup rgCompanyType;
	private RadioButton rbCompany1;
	private RadioButton rbCompany2;
	private RadioButton rbCompany3;
	
	
	
	@Override
	protected void onStop()
	{
		/**
		 * 关闭程序调用,保存信息
		 */
		SharedPreferences mySharedPreferences = getSharedPreferences(
				PREFERENCE_NAME, Activity.MODE_PRIVATE);
		SharedPreferences.Editor editor = mySharedPreferences.edit();
		//获取要保持信息,进行存储
		editor.putString("name", name.getText().toString());
		editor.putString("habit", habit.getText().toString());
		editor.putBoolean("employee", cbEmployee.isChecked());
		editor.putInt("companyTypeId", rgCompanyType.getCheckedRadioButtonId());
		//提交事务
		editor.commit();
		super.onStop();
	}

	@Override
	public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
	{
		rbCompany1.setEnabled(isChecked);
		rbCompany2.setEnabled(isChecked);
		rbCompany3.setEnabled(isChecked);
	}

	@Override
	public void onCreate(Bundle savedInstanceState)
	{

		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		name = (EditText) findViewById(R.id.etName);
		habit = (EditText) findViewById(R.id.etHabit);
		cbEmployee = (CheckBox) findViewById(R.id.cbEmployee);
		rgCompanyType = (RadioGroup) findViewById(R.id.rgCompanyType);
		rbCompany1 = (RadioButton) findViewById(R.id.rbCompany1);
		rbCompany2 = (RadioButton) findViewById(R.id.rbCompany2);
		rbCompany3 = (RadioButton) findViewById(R.id.rbCompany3);
		//为单选按钮设置监听
		cbEmployee.setOnCheckedChangeListener(this);
		/**
		 * 获取SharedPreferences对象用于存储操作
		 * @parma name  文件名称
		 * @parma mode	
		 */
		SharedPreferences sharedPreferences = getSharedPreferences(
				PREFERENCE_NAME, Activity.MODE_PRIVATE);
		/**
		 * 设置初始默认值
		 * sharedPreferences调用get()方法获取对象中的值
		 * 第一个参数为取值的key,第二个参数为默认值
		 */
		name.setText(sharedPreferences.getString("name", ""));
		habit.setText(sharedPreferences.getString("habit", ""));
		cbEmployee.setChecked(sharedPreferences.getBoolean("employee", false));
		rgCompanyType.check(sharedPreferences.getInt("companyTypeId", -1));
		onCheckedChanged(cbEmployee, cbEmployee.isChecked());

	}

}

 

分享到:
评论

相关推荐

    mooc_android_lesson20_SharedPreference登录功能

    在Android应用开发中,SharedPreference是一种轻量级的数据存储机制,用于存储小量的键值对数据,通常用于实现用户设置或应用配置的持久化。在这个"mooc_android_lesson20_SharedPreference登录功能"的课程中,我们...

    Android开发基础实例

    【Android开发基础实例】是专为初学者设计的一系列Android编程教程,涵盖了Android开发的核心概念和技术。这个资源包包含了多个示例项目,旨在通过实践帮助学习者深入理解Android开发的关键知识点。 1. **...

    Android应用开发学习代码集合,基于AndroidStudio

    介绍 学习Android开发的代码,基于AndroidStudio View_Demo是Android基础控件和布局,包括TextView,Edittext,ImageView,Button,RadioButton,Checkbox,ProgressBar和拖动条。 Adapter_Demo 是Adapter相关的代码...

    Google Android SDK开发范例大全 源码

    首先,Android SDK是Android应用开发的基础工具集,它提供了必要的API库、调试工具、模拟器等,使得开发者能够在不同的平台上进行Android应用的构建和测试。这份源码集合中可能涵盖了从基础组件到高级功能的各种实例...

    从零开始Android游戏编程(第二版)PDF版

    首先,Android游戏编程的基础是Java语言,因为Android系统主要基于Java进行开发。你需要熟悉Java的基本语法、面向对象编程概念,以及异常处理等基础知识。此外,理解Android SDK(软件开发工具包)的使用至关重要,...

    《Android应用开发揭秘》源代码

    源代码部分涵盖了从第二章到第十六章,这意味着我们可以学习到从基础到进阶的Android开发知识。以下是这些章节源代码所涉及的关键知识点: 1. **第二章:Android开发环境搭建** - 这一章通常会介绍如何安装并配置...

    Android-kotlin开发商用的电商项目

    在Android平台上,Kotlin语言已经成为了开发者们首选的编程语言之一,尤其在开发电商项目时,Kotlin的优势更为显著。本项目"Android-kotlin开发商用的电商项目"旨在利用Kotlin的强大特性和Android SDK来构建一个高效...

    《Android应用开发揭秘》源码

    1. **Android基础知识**:在学习源码之前,你需要了解Android的基本概念,包括Android系统架构、Activity生命周期、Intent机制等。源码中可能包含了如何启动Activity、处理Intent请求以及在不同生命周期方法中进行...

    《Android应用开发揭秘》源码.tat

    1. **Android基础知识**:书中源码会涵盖Android的基本架构,包括Activity、Service、BroadcastReceiver、ContentProvider等核心组件的使用。通过这些源码,你可以了解如何创建和管理应用的生命周期,以及如何在不同...

    Android游戏开发系列博文1-19源码免费共享,,童鞋们请评分!

    1. **Android2D游戏开发.txt**:这个文件可能包含了关于如何在Android平台上创建2D游戏的基础知识。这通常包括使用Android的SurfaceView或Canvas进行绘图,理解帧率控制,以及处理游戏循环的基本概念。 2. **输入法...

    Android开发资料收集 打包

    1. **Android基础知识**:这可能包括Android系统架构、开发环境的搭建(如Android Studio的安装与配置)、Android应用程序的基本组件(Activity、Service、BroadcastReceiver、ContentProvider)以及布局设计(XML...

    Android基础应用课程标准分享.pdf

    《Android基础》课程标准是一门针对计算机及软件技术相关专业学生的专业核心课程,旨在培养学生使用Android技术进行应用程序开发的能力,同时培养良好的编程规范和职业习惯。课程内容分为知识目标、职业能力目标、...

    联想Android开发工程师面试题.zip

    1. **Android基础知识**:面试可能会包含Android系统架构、Activity生命周期、Intent机制、BroadcastReceiver、Service、ContentProvider等核心组件的理解与使用。 2. **布局与UI设计**:面试者可能需要熟悉XML布局...

    Android开发应用实战详解

    4. **数据存储**:Android提供了多种数据存储方式,如SharedPreference用于轻量级偏好设置,SQLite数据库用于结构化数据,以及文件系统和ContentProvider等。理解这些存储方式的适用场景和使用方法是关键。 5. **...

    Android开发实战经典_源码

    《Android开发实战经典》这本书是Android开发者们的重要参考资料,它涵盖了Android应用开发的多个关键...这样的学习方式不仅有助于理论知识的理解,还能提升实际开发能力,为成为一名合格的Android开发者打下坚实基础。

    Google Android SDK开发范例大全(第2版)_源代码(全)

    《Google Android SDK开发范例大全(第2版)_源代码(全)》是一部全面介绍Android应用开发的实战性书籍,其配套源代码涵盖了从第三章到第十章的全部实例。这些章节深入浅出地讲解了Android SDK开发的关键技术和实践方法...

    Android应用源码之安卓高级开发教程313套.7z

    《Android应用源码之安卓高级开发教程》是一个包含313个案例的综合教程资源,旨在帮助开发者深入理解和掌握Android高级开发技术。这个压缩包文件包含了一系列以版本号命名的子文件,如10.1.rar到10.2.19.rar,这可能...

    安卓开发-Android经典开发---豆瓣网移动客户端+讲解+源代码.zip

    1. **Android应用基础**:学习这个项目前,开发者应具备基本的Android应用开发知识,包括Android Studio的使用、布局管理(如LinearLayout, RelativeLayout, ConstraintLayout等)、Activity和Fragment的生命周期、...

Global site tag (gtag.js) - Google Analytics