移动应用程序设计基础 | 您所在的位置:网站首页 › 移动端ui设计规范期末考试 › 移动应用程序设计基础 |
《移动应用程序设计基础》期末报告
课题名称: 《移动应用开发基础》上机考核 所使用的工具软件及环境:JDK,Android Studio 一、课题背景 期末上机考核,将实验四中的内容和实验五的内容以及上课所完成的小实验相互结合,完成最后的考核。 二、任务内容考核内容:上机单独完成一个简单日记本程序的编写。界面包括:用户登录,用户注册,日记本主页,新增编辑日记。 注意:以下***为您姓名的拼音单词第一个字母(如俞成海——ych)。 1.用户登录布局:activity_login.xml, 布局如下图,资源图片username.png和password.png,布局要求左边内嵌图片,提示如图。(10分) 图1 登录界面布局
实现功能:LoginActivity.java 输入字段包括用户名(username),密码(password)和确定(ok)按钮,点击确定(ok)按钮(10分) 如果用户名(username)和密码(password)在SharedPreferences中存在的话,则跳转DiaryActivity;点击注册,跳转用户注册界面RegisterActivity如果用户名(username)和密码(password)在SharedPreferences中不存在或不一致,则跳转用户注册界面RegisterActivity,同时Toast提示“username,请先注册您的信息,***程序友情提示!“如下图。注意: 注册时,写入SharePreferences,文件名user,保存值username和password;登录时,读出SharePreferences(文件名为user)中的username和password2.用户注册 界面布局:activity_register.xml, 布局如下图,资源图片username.png和password.png,布局要求左边内嵌图片,提示如下中间图。(10分) 功能实现:RegisterActivity.java。点击注册(register),将用户名(username)和密码(password)插入到写入SharePreferences中(文件名user,保存值username和password),返回到登录界面,Toast弹出“注册成功,请登陆,***程序友情提示!”,如上图。(10分) 3.日记主页界面布局:activity_diary.xml, 布局如下图,包括AppBarLayout,Listview和FloatingActionButton。(10分) 功能实现:DiaryActivity.java, 获取数据库***_DiaryDB.db中的表diary的信息,并将日记数据显示在listview中。(10分)点击列表项中的编辑图片按钮,界面跳转到日记新增编辑界面(DiaryInfoActivity)。(5分)点击AppBar上的编辑(edit_tv)列表项中的编辑图片按钮(bianji.png)替换成删除图片(delete.png),编辑改成取消,如下图。点击删除图片按钮,删除列表中的这一项,同时删除数据库中的该条数据,点击取消,取消改回为编辑,列表项中的删除图片(delete.png)替换成编辑图片按钮(bianji.png)。(10分)三、界面设计与实现(描述设计思想和理念的加分) 登录界面采用简单而常用的linerLayout布局,注册界面同样也是 日记本主界面采用CoordinatorLayout布局、listview采用RelativeLayout布局
编辑日记界面与采用CoordinatorLayout布局 流程图:
核心的java代码文件,以及根据实验5之后多出来的登录界面的布局文件,如下图为所有的文件详情。 //Register.java package com.example.sqlitedemo; import android.content.Context; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; public class Register extends AppCompatActivity { static public EditText usenameEdtxt1,passwordEdtxt1; public Button registerButton; protected void onCreate(Bundle savedInstanceState) { Login.p=1; super.onCreate(savedInstanceState); setContentView(R.layout.register); usenameEdtxt1=(EditText)findViewById(R.id.usename_edtxt); passwordEdtxt1=(EditText)findViewById(R.id.password_edtxt); registerButton=(Button)findViewById(R.id.register_button); registerButton.setOnClickListener(new View.OnClickListener() { @RequiresApi(api = Build.VERSION_CODES.GINGERBREAD) @Override public void onClick(View v) { String usename=usenameEdtxt1.getText().toString(); String password=passwordEdtxt1.getText().toString(); if(usename.isEmpty()){ usenameEdtxt1.setError("用户名不能为空"); usenameEdtxt1.requestFocus(); return; } if(password.isEmpty()){ passwordEdtxt1.setError("密码不能为空"); passwordEdtxt1.requestFocus(); return; } if(usename.length()>0&&password.length()>0){ Toast.makeText(com.example.sqlitedemo.Register.this, "注册成功,请登陆,邵永刚程序友情提示!", Toast.LENGTH_SHORT).show(); Intent it=new Intent(); Context packageContext; it.setClass(com.example.sqlitedemo.Register.this, com.example.sqlitedemo.Login.class); com.example.sqlitedemo.Register.this.startActivity(it); } } }); } } //MainActivity.java package com.example.sqlitedemo; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Build; import android.os.Bundle; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.snackbar.Snackbar; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import android.util.Log; import android.view.View; import android.view.Menu; import android.view.MenuItem; import android.widget.AdapterView; import android.widget.ListView; import android.widget.TextView; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import static android.os.Build.VERSION.SDK_INT; public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; private TextView editTv; private ListView diaryList; private FloatingActionButton fab; private List listData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); listData = new ArrayList(); fab = (FloatingActionButton) findViewById(R.id.fab); editTv = (TextView) findViewById(R.id.edit_tv); diaryList = (ListView) findViewById(R.id.list_view); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.e(TAG, "onClick: " ); Intent intent = new Intent(MainActivity.this, DiaryInfoActivity.class); intent.putExtra("FLAG", 0); startActivity(intent); } }); editTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.e(TAG, "on" ); int length = queryData().size(); if (editTv.getText().toString().equals("取消")){ editTv.setText("编辑"); for (int i = 0;i //register.xml 五、课题实现展示
进入登录界面,输入用户名和密码,此处不能为空,此时输入的用户名没有进行注册,所以会进入注册界面显示(请先注册)或者直接点击注册按钮进入注册界面显示(进行注册)。注册输入用户名和密码点击注册按钮显示(注册成功),会返回到登录界面,输入之前注册的用户名和密码,会进入到日记本主界面,显示(登录成功)。
点击编辑,可以删除所写的日记内容,点击加号按钮,可添加日记内容,点击勾保存。
点击日记标题右边的编辑图片按钮,可进入修改界面。 点击日记标题一行可以查看日记内容。点击编辑可删除日记,点击×会出现删除提示。 六、总结与体会本次上机考核,通过高级控件进行设计登录与注册界面。同时运用SQLiteOpenHelper抽象类以及契约类SQLiteContract,创建SQLiteOpenHelper的子类并覆写onCreate方法。本次考核内容基本完成,学习到数据库的使用,使我更好掌握了安卓数据库的应用,通过查找资料以及学习,完成最后先登录在跳转进入日记本的制作。通过本次实验,收获颇多,复习了以前的知识,也学习到了新的内容,对今后的学习有了很大的帮助。
下载资源包: https://download.csdn.net/download/weixin_48388330/76315152 资源中的图片以及内容只适用与学习
|
CopyRight 2018-2019 实验室设备网 版权所有 |