一、项目概述
本次项目主要包含了注册、登录和好友列表三个界面以及之间相互跳转。其中好友列表界面设计的很详细,有好友头像和消息内容,登录界面设计的非常好看。打开应用,进入登录界面,用户可以点击注册按钮进入注册界面,输入完账号和密码后,点击注册,自动跳转回登录界面,这时候账号和密码也会被传递过来,点击登录按钮进入好友列表界面,账号也被会被传递过去。
二、开发环境
三、详细设计
1、登录界面的搭建
整体布局是相对布局RelativeLayout,由上至下放置了ImageView(头像框),账号的TextView文本框和EditText输入框;紧接着是密码的TextView文本框和EditText输入框。左下是记住密码的复选框,右下是注册账号的按钮。最下面是经典的登录按钮。
2、注册界面的搭建
最外层是采用RelativeLayout布局。顶部是一个“新用户注册”的TextView,居中对齐,下面一个LinearLayout,水平放置账号的TextView和EditText;紧接着还是一个LinearLayout,水平放置密码的TextView和输入框EditText,最下面是注册的Button。
3、好友列表界面的搭建
最外层依然是LinearLayout布局,对齐方式为vertical垂直。首先最上面是一个LinearLayout,里面放了一个ImageView头像,和一个TextView文本框,用来接收用户登录时的账号,并显示出来。中间是一个TextView,显示“好友列表”,背景是color中自定义的颜色,下面就是一个ListView列表,显示好友的聊天信息。
4、跳转功能实现
登录按钮的点击事件,最直观效果是:点击之后从当前的主界面跳转到好友列表界面。其实还有两点逻辑在跳转前进行了处理:
- 点击按钮时判断【记住密码】的复选框是否被选中,如果被选中,将数据库中存放的键值修改为true,否则为false。便于应用启动时自动填写账号和密码。
- 判断当前输入的账号和密码是否和数据库中存储的账号密码相同,如果相同,则登录成功,否则弹出“账号或密码错误”的提示信息。
//点击事件
btnLog.setOnClickListener(new View.OnClickListener() {//匿名内部类方式实现按钮点击事件
@Override
public void onClick(View v) {//传递数据
//获取当前输入的账号和密码
String etAccount=account.getText().toString().trim();
String etPassword=password.getText().toString().trim();
//复选框是否选中
if(remember.isChecked()){
sh.isRemember(true);
}else{
sh.isRemember(false);
}
//在数据库中对账号和密码进行比对
String acc=data.get("username");
String pass=data.get("password");
//账号和密码都正确
if(acc.equals(etAccount)&&pass.equals(etPassword)){
//进行跳转
Intent intent=new Intent(MainActivity.this,FriendListActivity.class);
intent.putExtra("account",etAccount);
startActivity(intent);
finish();
}else{//账号或密码错误
Toast.makeText(MainActivity.this,"账号或密码有误",Toast.LENGTH_SHORT).show();
}
}
});
注册按钮绑定的监听器,创建意图Intent,实现点击跳转到注册界面。
//注册按钮的点击事件
btnReg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this, RegisterActivity.class);
startActivityForResult(intent,1);//返回请求结果,请求码为1
}
});
注册界面的注册按钮,实现View.OnClickListener 接口,重写了父类的onClick()方法,创建Intent(意图),并将注册的账号和密码传递过去。传递结束后,销毁自身活动。
public void onClick(View v) {
String etAccount=account.getText().toString().trim();
String etPassword=password.getText().toString().trim();
//弹出提示信息
Toast.makeText(this, "注册成功!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent();
//传递账号和密码
intent.putExtra("account", etAccount);
intent.putExtra("password", etPassword);
//设置请求码,然后进行跳转
setResult(1, intent);
//销毁本活动
finish();
}
四、项目效果
1、主界面默认显示为登录界面。
2、点击注册按钮进入注册界面。
3、我们输入账号密码,都是123456,然后点击注册按钮
4、跳转回登录界面,账号密码也被传递过来了
5、我们选择【记住密码】,点击登录按钮,成功跳转到好友列表,账号也被传递过来了
6、退出应用,重新打开应用,发现账号和密码自动填写在输入框中。
7、我们在右侧的Device File Explore中,按下面顺序打开文件:data->data->包名->shared_prefs->mysp.xml。可以看到我们的存储的账号和密码的map键值对。
五、项目总结
本次QQ页面跳转项目,主要考验学生对于ListView列表、Intent跳转以及SharedPreferences数据存储的使用,对多个页面之间的跳转和传值要熟稔于心,这些基础知识点在今后的Android项目中会经常使用,因此希望大家能够熟练掌握上述知识点,方便后续顺利开发项目。
六、源码下载
1️⃣直接点击右侧链接下载源代码 | Android实现QQ页面跳转 |
---|---|
2️⃣关注公众号《 萌新加油站 》 | 后台回复:跳转 |
🚀这有你错过的精彩内容 |
---|
Android Studio实现外卖订餐系统 |
Android Studio实现考试管理系统 |
Android Studio实现图书馆订座系统 |
Android Studio实现学生信息管理系统 |
Android Studio实现智能聊天机器人 |
《中庸》开篇第一章,就说君子在独处时,对于各种诱惑要有戒慎和恐惧之心。而在评论小人时,则说他们“无所忌惮”。可见修身最为重要的就是要有敬畏之心。林茂先所说的“男女有别,礼法不容”就是敬,“天地鬼神,罗列森布”就是畏。从这里也可以知道,他平日的个人修养的确很深。