嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
设计一个学生信息采集软件,采用两个页面。第一个页面为信息输入(包括两个按钮:清除、提交),第二个页面显示第一个页面输入信息的内容(包括一个按钮:返回)。要求:
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("");
}