Android 开发
(实验四)
实验题目:Activity生命周期验证试验
指导老师:
班 级:计算机科学与技术系班
姓 名:(
一、 实验目的
1、深入理解Activity运行机制和原理。
2、掌握Activity的声明周期各个阶段工作流程。
3、掌握多个Activity之间生命周期的转换过程。
4、通络Intent实现多页面之间数据的传递(辅助完成)。
二、 实验内容
1、 搭建任意组件,设计多个界面,运行程序观察其生命周期的情况。
2、 使用Intent实现页面之间数据的传递。
三、 实验代码
AlifecyfleActivity.java
package com.wr;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class AlifecycleActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button BtnStart = (Button) findViewById(R.id.BtnStart);
BtnStart.setOnClickListener(new MyBtnClickListener());
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
System.out.println("AlifecycleActivity:onDestroy()");
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
System.out.println("AlifecycleActivity:onPause()");
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
System.out.println("AlifecycleActivity:onRestart()");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
System.out.println("AlifecycleActivity:onResume()");
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
System.out.println("AlifecycleActivity:onStart()");
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
System.out.println("AlifecycleActivity:onStop()");
}
public class MyBtnClickListener implements OnClickListener {
//重写点击事件处理方法
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent(AlifecycleActivity.this,AlcActivity2.class);//创建意图对象
//使用意图对象打开一个新的Activity
startActivity(intent);
}
}
}
AlcActivity.java
package com.wr;
import android.app.Activity;
import android.os.Bundle;
public class AlcActivity2 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.alcactivity2_main);
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
System.out.println("AlcActivity2:onDestroy()");
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
System.out.println("AlcActivity2:onPause()");
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
System.out.println("AlcActivity2:onRestart()");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
System.out.println("AlcActivity2:onResume()");
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
System.out.println("AlcActivity2:onStart()");
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
System.out.println("AlcActivity2:onStop()");
}
}
IntentActivity.java
package com.gml;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class IntentActivity extends Activity {
private TextView txtShow;
private Button btnPage2;
private String name;
private int age;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
txtShow = (TextView) findViewById(R.id.txtShow);
btnPage2 = (Button) findViewById(R.id.btnPage2);
btnPage2.setOnClickListener(myListener);
name = "Mary";
age = 27;
String s = "姓名:"+name+"\n\r"+"年龄:"+age;
txtShow.setText(s);
}
@Override
//接收被调程序传回的数据,必须重载onActiveResult()方法。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==ACTIVITY_EDIT){
if(resultCode==RESULT_OK){
Bundle bundle = data.getExtras();
age = bundle.getInt("AGE");
String s= "姓名:"+name+"\n\r"+"年龄:"+age;
txtShow.setText(s);
}
if(resultCode==RESULT_CANCELED);
}
}
private static final int ACTIVITY_EDIT = 1;
private Button.OnClickListener myListener = new Button.OnClickListener(){
public void onClick(View v){
Intent intent = new Intent();
//使用setClass()确定Intent的发件人和收件者,IntentActivity传递给Second.
intent.setClass(IntentActivity.this, OneActivity.class);
//使用Bundle对象的put()方法打包数据,并利用putExtras()来进行传递
Bundle bundle = new Bundle();
bundle.putString("NAME", name);
bundle.putInt("AGE", age);
intent.putExtras(bundle);
//用startActivityForResult()方法取代startAcctivity()方法将包里寄出,并等待另一方的回音。
startActivityForResult(intent,ACTIVITY_EDIT);
}
};
}
OneActivity.java
package com.gml;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class OneActivity extends Activity{
EditText edtAge;
int age;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page1);
TextView txtName = (TextView) findViewById(R.id.txtName);
edtAge = (EditText) findViewById(R.id.edtAge);
Button btnSure = (Button) findViewById(R.id.btnSure);
Button btnCancel = (Button) findViewById(R.id.btnCancel);
btnSure.setOnClickListener(myListener);
btnCancel.setOnClickListener(myListener);
//使用onCreat方法取出Intent数据,并获取Bundle对象中名称为NAME、AGE的数据
Intent intent = this.getIntent();
Bundle bundle = intent.getExtras();
String name = bundle.getString("NAME");
int age = bundle.getInt("AGE");
txtName.setText("姓名:"+name);
edtAge.setText(""+age);
}
private Button.OnClickListener myListener = new Button.OnClickListener(){
public void onClick(View v){
if (v.getId()==R.id.btnSure){
//创建Intent对象
Intent intent = new Intent();
//将回传的数据放入Bundle中,再把这个Bundle交给Intent处理
age =Integer.parseInt(edtAge.getText().toString());
Bundle bundle = new Bundle();
bundle.putInt("AGE",age);
intent.putExtras(bundle);
//最后使用setResult()方法将Intent传回,同时必须传回一个结果的代码。
setResult(RESULT_OK,intent);
finish();
}
if(v.getId()==R.id.btnCancel){
setResult(RESULT_CANCELED);
finish();}
}
};}
四、 实验结果
五、 实验总结
1、 通过本次实验了解了Activity生命周期的运行过程。
2、 通过本次实验Intent实现多页面之间数据的传递。
3、 实验中遇到的问题通过与老师和同学讨论也已得到解决。
本科实验报告课程名称实验项目实验地点专业班级学生姓名指导教师Android设计与开发Android课程实验学号年月日太原理工大学学…
报告编号第5组综合课程设计报告基于Android平台的记事本的设计与实现学生姓名指导教师所在系电子工程系所学专业计算机科学与技术班…
实验报告课程名称手机应用开发实验名称Android实验院系信息与控制工程学院专业班级姓名学号指导教师20xx年月日实验一一实验名称…
南昌航空大学实验报告二〇##年一月六日课程名称:移动终端编程技术实验名称:Android组件通信和后台服务班级:姓名:同组人:指导…
实习报告实习目的:生产实习是计算机科学与技术专业重要的实践性教学活动,其目的是使学生们进一步加深对所学知识的理解,理论联系实际,巩…
实训报告姓名祝新学号1144131专业软件技术课程名称android实训项目名称闹铃指导教师王浩实训日期年月日至年月日20xx年1…
浙江大学宁波理工学院实训报告protectedvoidonCreateBundlesavedInstanceStatesupero…
实习时间学院专业名称学号姓名指导老师实习地点Xxxxxx大学专业实习报告201XXXXXXXXXXXXXXXX学院计算机通信信息技…
通信与电子信息专业实训报告项目名称基于Android的游戏开发班级10通信1班姓名学号指导教师成绩实训时间年月日目录一实训目的及其…
报告编号第5组综合课程设计报告基于Android平台的记事本的设计与实现学生姓名指导教师所在系电子工程系所学专业计算机科学与技术班…