• 注:这是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. 2pc oracle dba_2pc_pending,dba_2pc_pending视图中的信息不清除会对以后有影响吗?如何根本解决问题?...
  2. 【深度学习】深入浅出YOLOv3目标检测算法和实现(图片和视频)
  3. vim-snipmate编写snippet的语法
  4. 特殊表情存数据库处理
  5. 国土空间适宜性评价与承载力评价之间的逻辑关系是什么?
  6. 年薪20万软件测试工程师都具备的能力,你有吗?
  7. 死磕18个Java8日期处理,工作必用!收藏起来~
  8. Mongodb 3.0 创建用户
  9. JAVA架构师之路-视频学习
  10. PotPlayer中开启SVP4补帧效果
  11. 架设网页手游需要什么服务器,架设手游用什么云服务器
  12. 蓝精灵事件来袭: 深受喜爱的蓝色角色来 Web3 啦!
  13. scrollTo函数处理页面滚动问题
  14. 心理学上最诡异的23张图!!
  15. 浅谈Spark Livy
  16. Nagios短信分组报警
  17. 2021-3-19Quartus II 9.0安装以及使用经验
  18. mindspore.dataset.vision的HWC2CHW算子问题
  19. 敏捷软件开发之薪水支付案例
  20. ucms通用建站系统php,UCMS通用建站系统

热门文章

  1. 行业认证标准:CERT安全编码标准由软件工程学院(SEI)开发
  2. 揭开所谓种子搜索神器p2psearcher的面纱
  3. signature=29c2d7f30321e08413c374e6d87fb171,来用百度密语吧!!!
  4. 什么工具压缩视频文件好用
  5. 一生中的那几次毕业-转载
  6. 如何配置数据库密码加密访问数据库
  7. 关于老鼠撞断大象肋骨的调查处理报告
  8. discuzX2论坛 flash 上传略解
  9. qsv视频格式转换器怎么转换视频格式
  10. 金蝶kis系统连接服务器,金蝶kis客户端远程连接服务器