实例介绍
设计一个学生信息采集软件,采用两个页面。第一个页面为信息输入(包括两个按钮:清除、提交),第二个页面显示第一个页面输入信息的内容(包括一个按钮:返回)。要求:
1、在第一个页面点击“清除”后,将输入的信息清除;点击“提交”后,进入第二个页面;
2、在第二个页面点击“返回”后,返回第一页面;
3、在第一个页面进入第二个页面前,先查验输入信息的正确性,利用Toast提示用户;
4、在工程调试时尽量采用LogCat命令进行中间信息输出。
【实例截图】
【核心代码】
1. Intent和Activity之间传递数据
Intent是Android系统提供的一种协助应用间的交互与通信的机制。Intent负责对应用中一次操作的动作、涉及的数据、附加的数据的等进行描述,Android系统则根据次Intent所描述的,负责找到对用的组件,将Intent传递给调用的组件,并完成组件的调用。
对于不同的组件,Intent提供了不同的启动方法,本实验的组件是Activity,所以启动方法就采用 startActivity(Intent intent),Intent对象封装了它要执行动作的属性,有七大属性,本实验所采用的是Intent的Extra属性,它通常用于多个Activity之间进行数据的交换,Extra可以通过putExtra(键,值)的形式设置数据。如本实验中我要进行传输姓名、电话、密码性别等如下所示:
intent.putExtra("phoneNumber",phoneNumber);
intent.putExtra("name",name);
intent.putExtra("password",password);
intent.putExtra("confirmPwd",confirmPwd);
intent.putExtra("Login",Login);
intent.putExtra("sex",sex);
2. 显示Intent和隐式Intent
本实验所采用的是显示Intent,指定了ComponentName属性的Intent已经明确了它将要启动那个组件,因此称为显示Intent。如本实验中需要启动当前应其他的activity2,那么就是用了显示Intent如下所示:
Intent intent=new Intent(MainActivity.this,Activity2.class);
startActivity(intent);
在上述代码中,其中第一个参数packageContext是上下文对象,第二个参数cls指定要启动的目标Activity2。因为Activity是Context类的子类,所以第一个参数可以传this,代表当前的Activity对象。
3. 向Activity2传递数据
本实验要求第一个MainActivity要向Activity2传递数据,因此我采用了Intent传递数据的方法并且调用了putExtra()方法将想要传递数据存在Intent中。如题目中要求点击“提交”后,进入第二个页面,代码如下所示:
private Button btnLogin;
btnLogin = (Button) findViewById(R.id.btn_Login);
public void submit(View view) {
String Login = btnLogin.getText().toString().trim();
Intent intent=new Intent(MainActivity.this,Activity2.class);
intent.putExtra("Login",Login);
startActivity(intent);
}
4. 获取MainActivity传递过来的Intent对象
Intent intent = getIntent();
String phoneNumber = intent.getStringExtra("phoneNumber");
String name = intent.getStringExtra("name");
String sex = intent.getStringExtra("sex");
String password = intent.getStringExtra("password");
String confirmPwd = intent.getStringExtra("confirmPwd");
5. 从Activity2返回
本实验要求在第二个页面点击“返回”后,返回第一页面。因此首先要在第二个设计界面上添加一个返回按钮,然后再在逻辑代码中实现,如下所示:
btnReturn = (Button) findViewById(R.id.btn_return);
btnReturn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
6. 查验输入信息的正确性,利用Toast提示用户;
本实验还要求了在点提交进入第二个页面之前,查验输入信息的正确性,利用Toast提示用户。因此这里需要使用if判断信息是否填完整,如果没有填完整就会利用Toast给出提示信息“请填写完整相关学生信息”。
if (TextUtils.isEmpty(phoneNumber) || TextUtils.isEmpty(name) ||
TextUtils.isEmpty(password) || TextUtils.isEmpty(confirmPwd)) {
Toast.makeText(this, "请填写完整相关学生信息",
Toast.LENGTH_SHORT).show();
return;
}
7. 清除输入信息
本实验要求在第一个页面点击“清除”后,将输入的信息清除。这里我采用的是clearContent()方法,它可以将输入框的内容全部置为空,部分代码如下所示:
private void clearContent() {
// 输入框的内容全部置为空
etPhoneNumber.setText("");
etName.setText("");
etPassword.setText("");
}
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论