• 注:这是WHUT 计算机学院 移动终端应用开发课程、实验1:SharedPreferences的应用 的文章。
  • >>点击查看武汉理工大学计算机专业课程资料汇总
  • 源码下载地址:https://download.csdn.net/download/cxh_1231/10805430
  • >>点击查看WUTer计算机专业实验汇总
  • 纸上得来终觉浅,觉知此事需躬行!

一、实验目的:

  1. 熟悉Android应用程序的开发环境和开发过程;
  2. 熟悉Android应用程序的基本框架;
  3. 掌握Activity组件的创建与使用方法;
  4. 掌握Android布局管理和基本控件的使用方法;
  5. 熟悉Android数据存储方案,掌握SharedPreferences的使用方法。

二、实验内容:

  1. 新建一个Android应用程序,设计一个能够输入用户姓名、密码、电话、邮箱和性别等信息的界面。
  2. 为界面添加“保存”、“读取”和“清空”等按钮,并设计按钮响应代码。“保存”按钮将界面输入信息保存于SharedPrefences共享文件;“读取”按钮从共享文件中读取信息显示于界面上。“清空”按钮清空界面信息。
  3. 退出应用程序或关机时自动保存界面信息到共享文件。

三、实验指导:

  • 新建一个Android应用程序,设计一个GUI界面,效果图如图1所示。

  • 图1中下拉列表采用Spinner控件实现。该控件的使用方法与ListView控件类似,在加载数据时需要一个Adapte对象,并在创建Adapter对象的过程中指定要加载的数据(数组或List对象)。关键代码如下:
private String[] gender_list = new String[]{"男", "女"};
Spinner sp_gender = (Spinner) findViewById(R.id.sp_gengder);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,R.layout.spinner_item, gender_list);
sp_gender.setAdapter(adapter);
//获取下拉列表当前列项的内容
String user_gender = (String)sp_gender.getSelectedItem();
  • 将数据存储到SharedPreferences中的基本步骤如下:
    (1)使用Context类的getSharedPreferences(String name, int mode) 方法获得SharedPreferences对象;
    (2)使用SharedPreferences对象的edit()方法获得一个SharedPreferences.Editor对象。
    (3)使用SharedPreferences.Editor对象的putXxx()方法(如putString()、putInt()等)向SharedPreferences.Editor对象中添加数据。
    (4)调用apply()方法将添加的数据提交。
    例如:
  • SharedPreferences pref = getSharedPreferences("user_info", MODE_PRIVATE);
    SharedPreferences.Editor editor = pref.edit();
    editor.putString("user_name", "Tom"); // 存入数据
    editor.apply(); // 提交修改
  • 从SharedPreferences中读取数据的方法
    (1)使用Context类的getSharedPreferences(String name, int mode)获得SharedPreferences对象。
    (2)使用SharedPreferences对象的getXxx()方法(如getString()、getInt()等)从SharedPreferences中读取数据。
    例如:
SharedPreferences pref = getSharedPreferences("user_info", MODE_PRIVATE);
String userName = pref.getString("user_name", ""); //获取数据

四、过程记录:

1、activity_main.xml布局设计:​​​​​

XML文件布局(点击图片查看大图)

2、activity_main代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:id="@+id/linearLayout"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><TextViewandroid:id="@+id/UserName"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:layout_marginTop="38dp"android:layout_toStartOf="@+id/choosesex"android:text="用户名:"android:textSize="50px" /><EditTextandroid:id="@+id/editUserName"android:layout_width="263dp"android:layout_height="wrap_content"android:layout_alignBottom="@+id/UserName"android:layout_toEndOf="@+id/UserName"android:ems="10"android:inputType="textPersonName"android:text="" /><TextViewandroid:id="@+id/PassWord"android:layout_width="93dp"android:layout_height="33dp"android:layout_alignParentTop="true"android:layout_alignStart="@+id/UserName"android:layout_marginTop="103dp"android:text="密 码:"android:textSize="50px" /><TextViewandroid:id="@+id/Tel"android:layout_width="92dp"android:layout_height="33dp"android:layout_alignParentTop="true"android:layout_alignStart="@+id/UserName"android:layout_marginTop="162dp"android:text="电 话:"android:textSize="50px" /><TextViewandroid:id="@+id/Email"android:layout_width="92dp"android:layout_height="31dp"android:layout_alignParentTop="true"android:layout_alignStart="@+id/UserName"android:layout_marginTop="223dp"android:text="邮 箱:"android:textSize="50px" /><TextViewandroid:id="@+id/Sex"android:layout_width="93dp"android:layout_height="38dp"android:layout_alignParentBottom="true"android:layout_alignStart="@+id/UserName"android:layout_marginBottom="254dp"android:text="性 别:"android:textSize="50px" /><EditTextandroid:id="@+id/editEmail"android:layout_width="263dp"android:layout_height="wrap_content"android:layout_alignBottom="@+id/Email"android:layout_alignParentEnd="true"android:layout_marginEnd="14dp"android:ems="10"android:inputType="textPersonName"android:text="" /><EditTextandroid:id="@+id/editPassword"android:layout_width="262dp"android:layout_height="wrap_content"android:layout_alignBottom="@+id/PassWord"android:layout_alignParentEnd="true"android:layout_marginEnd="14dp"android:ems="10"android:inputType="textPersonName"android:text="" /><EditTextandroid:id="@+id/editTel"android:layout_width="264dp"android:layout_height="wrap_content"android:layout_alignBottom="@+id/Tel"android:layout_alignParentEnd="true"android:layout_marginEnd="14dp"android:ems="10"android:inputType="textPersonName"android:text="" /><Spinnerandroid:id="@+id/choosesex"android:layout_width="236dp"android:layout_height="36dp"android:layout_alignBottom="@+id/Sex"android:layout_alignParentEnd="true"android:layout_marginEnd="39dp" /><Buttonandroid:id="@+id/buttonsave"android:layout_width="320dp"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:layout_marginBottom="178dp"android:onClick="buttonsave_Click"android:text="保 存" /><Buttonandroid:id="@+id/buttonread"android:layout_width="322dp"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:layout_marginBottom="122dp"android:onClick="buttonread__Click"android:text="读 取" /><Buttonandroid:id="@+id/buttonblank"android:layout_width="325dp"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:layout_marginBottom="66dp"android:onClick="buttonclean__Click"android:text="清 空" /></RelativeLayout>

3、MainActivity.java文件代码:

package com.cxhit.test1;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Spinner;
import android.widget.Toast;
import android.content.SharedPreferences;
import android.widget.Button;
import android.widget.EditText;
import android.widget.*;
import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {private EditText getUserName,getUserPassword,getUserTel,getUserEmail;private Spinner getUserSex;private Button saveButton,readButton,cleanButton;声明Sharedpreferenced对象private SharedPreferences sp;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Spinner spinner = (Spinner) findViewById(R.id.choosesex);final List<String> datas = new ArrayList<>();datas.add("男");datas.add("女");MyAdapter adapter = new MyAdapter(this);spinner.setAdapter(adapter);adapter.setDatas(datas);saveButton = (Button) findViewById(R.id.buttonsave);readButton = (Button) findViewById(R.id.buttonsave);cleanButton = (Button) findViewById(R.id.buttonblank);}public void buttonsave_Click(View view) {getUserName = (EditText) findViewById(R.id.editUserName);getUserPassword = (EditText) findViewById(R.id.editPassword);getUserTel = (EditText) findViewById(R.id.editTel);getUserEmail = (EditText) findViewById(R.id.editEmail);getUserSex = (Spinner) findViewById(R.id.choosesex);SharedPreferences pref = getSharedPreferences("user_info",MODE_PRIVATE);SharedPreferences.Editor editor =pref.edit();editor.putString("username",getUserName.getText().toString());editor.putString("userpassword",getUserPassword.getText().toString());editor.putString("usertel",getUserTel.getText().toString());editor.putString("useremail",getUserEmail.getText().toString());editor.putString("usersex",getUserSex.getSelectedItem().toString());editor.apply();Toast.makeText(MainActivity.this,"保存成功",Toast.LENGTH_LONG).show();}public void buttonread__Click(View view){getUserName = (EditText) findViewById(R.id.editUserName);getUserPassword = (EditText) findViewById(R.id.editPassword);getUserTel = (EditText) findViewById(R.id.editTel);getUserEmail = (EditText) findViewById(R.id.editEmail);getUserSex = (Spinner) findViewById(R.id.choosesex);SharedPreferences pref = getSharedPreferences("user_info",MODE_PRIVATE);getUserName.setText(pref.getString("username",""));getUserPassword.setText(pref.getString("userpassword",""));getUserTel.setText(pref.getString("usertel",""));getUserEmail.setText(pref.getString("useremail",""));SpinnerAdapter spAdapter = getUserSex.getAdapter();int k = spAdapter.getCount();for (int i=0;i<k;i++){if(pref.getString("usersex","").equals(spAdapter.getItem(i))){getUserSex.setSelection(i);break;}}Toast.makeText(MainActivity.this,"读取成功",Toast.LENGTH_LONG).show();}public void buttonclean__Click(View view){getUserName = (EditText) findViewById(R.id.editUserName);getUserPassword = (EditText) findViewById(R.id.editPassword);getUserTel = (EditText) findViewById(R.id.editTel);getUserEmail = (EditText) findViewById(R.id.editEmail);getUserSex = (Spinner) findViewById(R.id.choosesex);getUserSex.setSelection(0);getUserName.setText("");getUserPassword.setText("");getUserEmail.setText("");getUserTel.setText("");Toast.makeText(MainActivity.this,"清空成功",Toast.LENGTH_LONG).show();}
}

五、运行结果:

六、写在最后:

今天晚上刚考完移动终端应用开发,才将这片文章发出来。

其实,Android开发的两次实验并不难,也是Android必须zhan掌握的基本知识。今晚上考试的两道程序设计题就是这次实验的两道题,即分别使用SharedPreferences和SQLitebaoc保存TestView输入的用户名和密码。

本文内容仅供参考。

【移动终端应用开发】实验1:SharedPreferences的应用相关推荐

  1. 【移动终端应用开发】实验2:SQLite数据库的使用

    注:这是WHUT 计算机学院 移动终端应用开发课程.实验2:SQLite数据库的使用 的文章. >>点击查看武汉理工大学计算机专业课程资料汇总 源码下载地址:https://downloa ...

  2. Android传感器Motion Sensor开发实验

    目录 一.实验目的 二.实验要求 三.实验原理 (一)第一次实验 1.JDK(Java Development Kit) 2.Android SDK 3.AVD(Android Virtual Dev ...

  3. Android技术应用实验指导书,Android应用开发实验指导书

    第 1 页手机应用开发实验指导书西南科技大学计算机科学与技术学院2015.11第 2 页目录手机应用开发 .1实验指导书 .1实验一:搭建 Android开发平台和创建 HelloWorld程序 .- ...

  4. Cocos2d-xna : 横版战略游戏开发实验5 TiledMap实现关卡地图

    Cocos2d-xna : 横版战略游戏开发实验5 TiledMap实现关卡地图 在前面的几篇中动手实验使用了CCSprite.CCScene.CCLayer.CCAction.CCMenu等coco ...

  5. android实现电话功能实验报告,安卓开发实验报告-20210407005833.docx-原创力文档

    文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] 安卓开发实验报告 安卓开发实验报告 目录 页面跳 ...

  6. linux cached释放_正点原子Linux第四十一章嵌入式Linux LED驱动开发实验

    1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 第四十一章嵌入式Linux LED驱动开发实验 上一章我 ...

  7. 开发实验实训管理系统

    湖北襄樊石开网络科技提供专业的学生实验(训)室设备信息管理系统软件等各种实验室信息化管理软件,加强实验(训)室信息化建设,加强了学院管理.定制管理软件首选石开! 开发实验实训管理系统,目的是规范学院的 ...

  8. 【正点原子Linux连载】第四十一章 嵌入式Linux LED驱动开发实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  9. 网页设计与开发-实验报告-4

    网页设计与开发-实验报告-4 网页设计与开发-实验报告-4 学生实验2 学生实验3 学生实验4 学生实验5 网页设计与开发-实验报告-4 学生实验2 利用list-style-image:url(图像 ...

最新文章

  1. 程序员的杂想-不要只做一名程序员
  2. 第八届医学图像计算青年研讨会(MICS 2021)--简要记录
  3. Vmware Centos中安装vmtools工具
  4. C语言:用单链表实现输入排序
  5. android 铃声格式,安卓铃声是什么格式 常见的主流安卓铃声格式有哪些
  6. 海盗湾(The Pirate Bay)的战争——每一名技术人员都应该思考的问题
  7. 【实战】疾病-基因与图神经网络和图自动编码器的相互作用
  8. win10以太网dns服务器未响应,Win10系统dns服务器未响应如何修复?
  9. python-windows命令行启动appium及杀掉对应接口进程
  10. 跟开涛学shiro练习代码
  11. tinymce粘贴word图片问题解决
  12. 初级中级高级测试工程师的区别
  13. 2017百度之星初赛B场总结
  14. [sd card] sd card初始化流程
  15. 介绍计算机配置的英语作文,用英语描述一个电脑的最新配置
  16. 致自己:CSS学习笔记三
  17. 论文引用率为零是什么情况?
  18. 职场“加班”那些事之病态的加班文化
  19. 稀疏光流和稠密光流,OpenCV实现
  20. 第二章:Statistical Modeling

热门文章

  1. 【Educational Codeforces Round 138】A. Cowardly Rooks
  2. 定时执行专家 5.0(一款制作精良、功能全面、使用简单的专业定时执行工具软件)
  3. 网络串口调试助手(串口透传网络调试)
  4. c基础部分:怎么在for循环中 对上一次循环的值和下一次循环的值作比较
  5. 转 Lua标准库: table函数, 数学函数, 字符串函数/格式化/配对, WoW新增函数, 函数别名...
  6. vbs代码如何使用Wscript调试
  7. Window下的2D游戏-贴图技术
  8. 数字化智慧城市建设的一系列项目工程变化与联系
  9. mp4视频文件moov前置
  10. DDR Layout Guide-DDR布线规则与过程