毕业设计
com.mm.lifebutler.activity com.android.diary.activity com.android.diary.activity RegisterActivity.java CharActivity.java MemoEditActivity.java 注册界面视图 统计界面视图 便笺管理界面视图 表 4.(3)系统代码结构
Android的资源文件保存在res的子目录中。产生动画效果的XML文件在/res/anim目录中进行保存,图像文件在/res/drawable/目录中进行保存。
/res/drawable/中又分别有三种高、中、低像素的三个文件夹,要将需要用的图片每个文件夹里面各放一次,这样系统会自动选取适合屏幕像素的图片。将自定义字符串和自定义颜色的文件存放在/res/values目录中进行保存。XML格式的数据文件在/res/xml目录中进行保存。这些目录中保存着程序开发阶段的所有可以被调用的资源。
具体的每个资源文件的用途如下表4.4: 资 源 目 录 Drawable Layout 文 件 名 btn_comm_selector.xml checkbox_selector1.xml listview_item_selector.xml spinner_bg.xml activity_login.xml activity _register.xml activity _list.xml activity_incomedit.xml activity_char.xml values styles.xml colors.xml strings.xml 登录界面布局文件 注册界面布局文件 收入列表布局文件 收入添加界面布局文件 统计界面布局文件 样式资源文件 颜色资源文件 字符串资源文件 说 明 按钮资源文件 表 4.4 资源文件的文件名称及其用途
毕业设计
5 系统实现
本章对系统各模块的功能进行介绍和实现。首先使配置开发环境,在Eclipse中配置好ADT和Android SDK等开发环境,然后是建立项目,建立一个项目名称为LifeButler的新的Android项目,最后要对本软件需要使用的权限进行配置,在Android项目中的AndroidManifest.xml文件中完成配置
生活小管家的主要功能有:用户登录,用户注册,收入管理,支出管理,数据统计,便笺管理和系统设置。本软件是一个应用在智能手机端的工具软件,软件可以通过SQLite数据库来实现用户数据的永久性管理,是用户日程生活中不可多得的一款实用性软件。
5.1用户登录界面
本软件需要在用户登录界面进行登录后才能使用,有用户账号的可以直接
登录,没有用户账号的需要在此界面注册一个新的账号并设置密码才能使用。可以通过点击界面右上角的“注册”按钮进入到用户注册的界面进行用户注册。登录本界面包括两个EditText和两个Button组件,同时也包括一个Checkbox组件,用户登录时系统会通过调取SQLite数据库的用户信息来验证当前的用户身份是否有效,如用户名和密码验证成功则系统会自动进入到应用软件的主界面。如果用户名和密码验证失败则出现登录失败的提示语,需要重新登录。
在登陆界面用户可以勾选“记住密码”对设置好的密码进行记录,这样就可以不用每次登录账号时都要输入一次密码,系统可在自动对上次的密码进行记录。所以只要用户设置了自己的用户名及密码后,并且用这个用户名和密码登录成功,系统都会对他们进行默认的记录。
具体的实现效果如图5.1所示:
毕业设计
图5.1 用户登录主界面
核心实现代码:
@SuppressWarnings(\)
private class btnLoginOnClickListener implements OnClickListener { @Override
public void onClick(View v) {
if (etLoginID.getText().length() == 0) { toastUtil.show(\请输入账号\); return; }
if (etPassword.getText().length() == 0) { toastUtil.show(\请输入密码\); return; }
BaseUtil.HideKeyboard(LoginActivity.this); Dao dao = orm.getDBTable_UserDao();
HashMap
try {
map.put(\, etLoginID.getText()); map.put(\, etPassword.getText()); List
if (list.size() > 0) {
毕业设计
SPUtil.set(LoginActivity.this, \, etLoginID.getText().toString());
if (ckbSavePwd.isChecked()) {
SPUtil.set(LoginActivity.this, \, etPassword.getText().toString()); } else {
SPUtil.set(LoginActivity.this, \, \);
}
OnLineUser lineUser = new OnLineUser(); lineUser.setId(list.get(0).getId());
lineUser.setLoginid(list.get(0).getLoginid());
// lineUser.setOther(list.get(0).getId()); // 保存登录用户信息
application.setLoginUser(lineUser); toastUtil.show(\登录成功\);
Intent intent = new Intent(LoginActivity.this, GroupMainActivity.class);
startActivity(intent);
LoginActivity.this.finish();
} else {
toastUtil.show(\帐号或密码错误\); }
} catch (SQLException e) {
e.printStackTrace(); } } };
5.2用户注册界面
本软件需要用户登录后才能够使用,所以如果用户还没有注册过用户没有用户名,那么可以注册一个新的账号。可以点击界面上的注册完成,注册新账号时需要填写用户名和密码以及确定密码,然后完成注册点击确定按钮。在账号密码的长度上该系统也进行了限制,密码的长度要求不低于六位,这为本软件的安全性提供了很好的保障。同时如果输入的账号是之前注册过的,会弹出此账号已经被注册过了提示信息。
具体的实现效果如图5.2所示:
毕业设计
图5.2 用户注册界面
核心实现代码:
private class btnRegisterOnClickListener implements OnClickListener { @Override
public void onClick(View v) {
if (etLoginID.getText().length() == 0) { toastUtil.show(\请输入账号\); return; }
if (etLoginID.getText().length() < 6) { toastUtil.show(\账号长度至少为6位\); return; }
if (etPassword.getText().length() == 0) { toastUtil.show(\请输入密码\); return; }
if (etPassword.getText().length() < 6) { toastUtil.show(\密码长度至少为6位\); return; }