当前位置: 首页 > news >正文

林州网站建设公司宁夏建设厅官方网站

林州网站建设公司,宁夏建设厅官方网站,网站降权表现,网龙网络公司简介文章目录一、实验内容二、实验步骤1、页面布局2、数据库3、登录活动4、增删改查三、运行演示四、实验总结五、源码下载一、实验内容 根据Android数据存储的内容#xff0c;综合应用SharedPreferences和SQLite数据库实现一个用户信息管理系统#xff0c;强化对SharedPreferen… 文章目录一、实验内容二、实验步骤1、页面布局2、数据库3、登录活动4、增删改查三、运行演示四、实验总结五、源码下载一、实验内容 根据Android数据存储的内容综合应用SharedPreferences和SQLite数据库实现一个用户信息管理系统强化对SharedPreferences的理解的使用熟练掌握SQLite的操作。要求 巩固Android应用开发工具Eclipse或者AndroidStudio的常规用法巩固Activity、UI控件的常规用法掌握SharedPpreferences数据存储的使用掌握SQLite数据库及SQLiteOpenHelper的使用。 二、实验步骤 1、页面布局 本次布局提倡从简原则按照往常习惯我肯定是创建多个Activity然后每个Activity设置下页面分别从主页面跳转到各个页面。既然是实验那就从简实现核心的思想就可以了底层逻辑实现出来表面内容那不是花时间设计下就行了。言归正传主页面布局如下没有任何亮点可言比较常规只给Button和TextView都设置了background。 完整的layout代码如下 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticaltools:context.MainActivityEditTextandroid:idid/et_idandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:hint请输入学号android:textSize20spandroid:textColorcolor/blackandroid:padding10dpandroid:layout_margin20dpandroid:inputTypetextandroid:backgrounddrawable/et_selector /EditTextandroid:idid/et_nameandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:hint请输入姓名android:textSize20spandroid:textColorcolor/blackandroid:padding10dpandroid:layout_margin20dpandroid:inputTypetextandroid:backgrounddrawable/et_selector /EditTextandroid:idid/et_ageandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:hint请输入年龄android:textSize20spandroid:textColorcolor/blackandroid:padding10dpandroid:layout_margin20dpandroid:inputTypetextandroid:backgrounddrawable/et_selector /LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:orientationhorizontalButtonandroid:idid/btn_insertandroid:layout_width0dpandroid:layout_heightmatch_parentandroid:layout_weight1android:gravitycenterandroid:text添加android:backgrounddrawable/btn_selectorandroid:textSize20spandroid:layout_margin10dpandroid:textColorcolor/black/Buttonandroid:idid/btn_deleteandroid:layout_width0dpandroid:layout_heightmatch_parentandroid:layout_weight1android:gravitycenterandroid:text删除android:backgrounddrawable/btn_selectorandroid:textSize20spandroid:layout_margin10dpandroid:textColorcolor/black//LinearLayoutLinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:orientationhorizontalandroid:layout_marginBottom20dpButtonandroid:idid/btn_updateandroid:layout_width0dpandroid:layout_heightmatch_parentandroid:layout_weight1android:gravitycenterandroid:text修改android:backgrounddrawable/btn_selectorandroid:textSize20spandroid:layout_margin10dpandroid:textColorcolor/black/Buttonandroid:idid/btn_queryandroid:layout_width0dpandroid:layout_heightmatch_parentandroid:layout_weight1android:gravitycenterandroid:text查询android:backgrounddrawable/btn_selectorandroid:textSize20spandroid:layout_margin10dpandroid:textColorcolor/black//LinearLayoutViewandroid:layout_widthmatch_parentandroid:layout_height2dpandroid:backgroundcolor/black/LinearLayoutandroid:orientationhorizontalandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentTextViewandroid:layout_width0dpandroid:layout_weight1android:text学号android:textSize20spandroid:gravitycenterandroid:layout_heightwrap_content/TextViewandroid:layout_width0dpandroid:layout_weight1android:text姓名android:textSize20spandroid:gravitycenterandroid:layout_heightwrap_content/TextViewandroid:layout_width0dpandroid:layout_weight1android:text年龄android:textSize20spandroid:gravitycenterandroid:layout_heightwrap_content//LinearLayoutViewandroid:layout_widthmatch_parentandroid:layout_height2dpandroid:backgroundcolor/black/ListViewandroid:idid/lv_stuandroid:layout_widthmatch_parentandroid:layout_heightmatch_parent/ /LinearLayout2、数据库 考查对SQLite的熟练程度其实就是Android提供了一个数据库帮助类帮我们进行数据库的各种操作。我们要做的就是建库建表写个增删改查的方法然后剩下的事情交给系统。这里是学生表的建表语句一切属性都能用text表示。 private val CREATE_STUDENT create table Student ( id text primary key, name text, age text)再看学生类简直封装的太好了Kotlin的魅力所在换做Java又是属性、构造函数、get和set方法。 class Student(val id:String, val name:String, val age:String) {}下面看数据库的增删改查操作所有的操作都是针对数据库的Student表来的增加、删除和修改都很简单使用ContentValues添加键值对。查询是最关键的使用cursor游标一行行遍历表数据各种约束条件可以自己加正常全查就完事了。 val dbHelper DBHelper(context, stu.db, 1)lateinit var db:SQLiteDatabasefun openDB() {db dbHelper.writableDatabase}fun closeDB() {if (db ! null) dbHelper.close()}// 插入学生fun insertStudent(stu: Student) {val values ContentValues().apply {put(id, stu.id)put(name, stu.name)put(age, stu.age)}db.insert(Student, null, values)}// 删除学生fun deleteStudent(stu: Student) {db.delete(Student, id ?, arrayOf(stu.id))}// 更新学生fun updateStudent(stu: Student) {val values ContentValues()values.put(name, stu.name)values.put(age, stu.age)db.update(Student, values, id ?, arrayOf(stu.id))}// 查询所有学生fun queryAllStudent():ArrayListStudent {val cursor db.query(Student, null, null, null, null, null, null)val stuList ArrayListStudent()if (cursor.moveToFirst()) {do {val id cursor.getString(cursor.getColumnIndex(id))val name cursor.getString(cursor.getColumnIndex(name))val age cursor.getString(cursor.getColumnIndex(age))val stu Student(id, name, age)stuList.add(stu)} while (cursor.moveToNext())}cursor.close()return stuList}3、登录活动 登录活动用的是sharedPreferences它使用方法非常easy首先初始化一个sharedPreferences对象文件名和访问类型自定义。读数据就是调用getString获取键值对设定个默认值。写数据就是调用sharedPreferences.edit()赋值给editor对象然后putString读取键值对。还记录了下app的使用次数。 override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)binding ActivityLoginBinding.inflate(layoutInflater)setContentView(binding.root)sharedPreferences getSharedPreferences(data, Context.MODE_PRIVATE)var editor sharedPreferences.edit()// 得到之前的使用次数然后每次打开app都加1var count sharedPreferences.getString(count, 0);binding.tvCount.text (count!!.toInt() 1).toString()// 保存键值对到sharedpreferences中editor.putString(count, (count!!.toInt() 1).toString())editor.apply()binding.btnLogin.setOnClickListener{editor.putString(account, binding.etAccount.toString().trim())editor.putString(password, binding.etPassword.toString().trim())editor.apply()Toast.makeText(this, 登录成功, Toast.LENGTH_SHORT).show()val intent Intent(this, MainActivity::class.java)startActivity(intent)finish()}}4、增删改查 其实对数据表的增删改查逻辑在StudentDao中已经封装好了我们在Activity里面也只是调用方法实现界面和数据库的交互罢了。具体的操作逻辑如下 输入学号、姓名和年龄后点击添加可以添加学生输入学号点击查询可以查询学生信息然后点击删除会删除信息点击修改会修改输入框中的学生信息最后如果输入的学号不存在而且你点查询了会显示所有学生的信息如果存在只会显示该学生的信息。 override fun onClick(p0: View?) {var stuId binding.etId.text.toString()var stuName binding.etName.text.toString()var stuAge binding.etAge.text.toString()var stu Student(stuId, stuName, stuAge)var flag (studentDao.queryById(stuId) ! null)when(p0?.id) {R.id.btn_insert-{if (flag) {Toast.makeText(this, 学生已存在无法添加, Toast.LENGTH_SHORT).show()} else {studentDao.insertStudent(stu)Toast.makeText(this, 添加成功, Toast.LENGTH_SHORT).show()}}R.id.btn_delete-{if (flag) {studentDao.deleteStudent(stu)Toast.makeText(this, 删除成功, Toast.LENGTH_SHORT).show()} else {Toast.makeText(this, 该学生不存在无法删除, Toast.LENGTH_SHORT).show()}}R.id.btn_update-{if (flag) {studentDao.updateStudent(stu)Toast.makeText(this, 修改成功, Toast.LENGTH_SHORT).show()} else {Toast.makeText(this, 该学生不存在无法修改, Toast.LENGTH_SHORT).show()}}R.id.btn_query-{if (flag) {// 如果存在则补全信息binding.etAge.setText(studentDao.queryById(stuId)?.age)binding.etName.setText(studentDao.queryById(stuId)?.name)Toast.makeText(this, 查询到该学生信息, Toast.LENGTH_SHORT).show()} else {// 不存在则显示所有学生信息studentList studentDao.queryAllStudent()adapter StudentAdapter(this, R.layout.item_student, studentList)binding.lvStu.adapter adapterToast.makeText(this, 查询所有学生信息, Toast.LENGTH_SHORT).show()}}}}三、运行演示 1、首先进入登录界面输入账号和密码然后点击登录即可右上角是使用次数。 2、进入主界面我们输入学号、姓名和年龄进行添加学生。 3、点击添加按钮添加成功。再依次添加几个学生。 4、点击查询此时学号是不存在的所以就查询了所有学生的信息。 5、我们输入学号4然后点击查询可以看到查询到信息并自动补全了。 6、修改姓名和年龄然后再点修改再点击查询发现已经修改好了信息。 7、我们再查询小益的信息然后删除小益的信息。 四、实验总结 其实学生系统涉及到数据库的操作完全和前面的其他系统相似真正做起来还是比较繁琐的。哪里有什么容易代码都是在一个个bug解决中完成的。理论引导实战光理论只会纸上谈兵光实践缺少方法论基础打牢了才能进阶不然上限不会高基础决定了你的上限。 五、源码下载 源代码已上传CSDN点击下载源代码已上传GitHub点击下载
http://www.hkea.cn/news/14258501/

相关文章:

  • 眼镜商城网站建设方案京东app下载官网免费下载
  • 中国工程建设造价管理协会网站交换链接营销成功案例
  • 杨浦做网站电子商务网站有哪些类型
  • 襄阳购物网站开发设计php wap网站实现滑动式数据分页
  • 石林彝族网站建设响应式网站模板 视差
  • 广州做购物网站网站建设中 倒计时
  • 明空网络做网站好不好wordpress中文网址转换
  • 专业网站优化哪家好wordpress招商平台
  • 网站上的验证码怎么做i排版 wordpress
  • 帝国+只做网站地图网站建设开发计入什么会计科目
  • 建站成本上传到ftp网站模板
  • wordpress建立购物网站阿哥体育个人网页
  • 宁波个人做网站基于dw的动物网站设计论文
  • 北京网站大全网站名称能用商标做名称吗
  • 越南建设部网站自己做下载网站
  • 烟台做外贸网站建设西安便宜网站建设
  • 服务型网站建设软件开发是编程吗
  • 市级部门网站建设自评报告软件营销网站
  • 网站的网络营销方案自己做个网站需要几个软件
  • 网站建站多少钱北京最大的软件开发公司
  • 网站建设策划书模板网站建设 优化
  • 上海企业网站建站模板交换链接的例子
  • 东莞响应式网站哪家好做视频网站用哪个cms
  • 做网站和视频剪辑用曲面屏网站建设小程序山东
  • 做一个简单的网站需要多少钱怎么做同城网站
  • 清河做网站哪里便宜网络公司经营范围哪些
  • 网站怎么做长尾词网站上传ftp
  • 网站制定公司品牌设计书籍
  • 网站和搜索引擎中国建设银行官网的网站首页
  • 郑州做网站推广外包多个图片怎样导入到多个wordpress