Activity的生命周期及传值
来源:互联网 发布:淘宝售前客服怎么做 编辑:程序博客网 时间:2024/06/05 16:53
Activity的生命周期 (7个)
从创建到销毁的过程:
onCreate() 第一次创建时执行 初始化Activity
onCreate() 第一次创建时执行 初始化Activity
onStart() 显示窗口时执行 显示Activity
onResume() 用户获取焦点时执行 与用户交互
onPause() 用户失去焦点时执行 停止与用户交换
onStop() 关闭窗口时执行 关闭Activity
onRestart() 重新显示窗口时执行 再次显示Activity
onDestroy() 销毁时执行 销毁Activity
例如:启动MainActivity时执行的生命周期
M:onCreate -- M:onStart -- M:onResume
退出MainActivity时执行的生命周期
M:onPause -- M:onStop -- M:onDestro
从MainActivity启动InfoActivity时执行的生命周期
M:onPause -- I:onCreate -- I:onStart --I:onResume -- M:onStop
对话框 M:onPause -- I:onCreate -- I:onStart --I:onResume
当InfoActivity 退出时执行的生命周期
I:onPause -- M:onRestart -- M:onStart -- M:onResume -- I:onStop -- I:onDestroy
对话框 I:onPause -- M:onResume -- I:onStop -- I:onDestroy
传值
两个Activity之间的传值
A ---> B 启动B页面 通过 意图传值, 静态成员传值, 全局变量传值
A ---> B ---> A 启动B页面 将数据回传给A页面
1, 通过Intent意图传值
方式一:
A Intent intent = new Intent(MainActivity.this, InfoActivity.class);
intent.putExtra(key,value);
intent.putExtra(key,value);
startActivity(intent);
B Intent intent = getIntent();
intent.getStringExtra(key);
方式二:
A Intent intent = new Intent(MainActivity.this, InfoActivity.class);
Bundle bundle = new Bundle();
bundle.putString(key,value);
intent.putExtras(Bundle bundle);
startActivity(intent);
B Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String sex = bundle.getString(key);
2, 静态成员传值(不建议使用)
A 声明一个公共的静态成员, 在合适的位置存入数据
B 直接访问A页面中静态成员, 读取相应的内容
3, 全局变量传值 -- Application (用户帐号)
1, 创建Application的子类, 并且在类中声明全局变量
2, 在清单文件中<application/>中, 通过android:name="" 引入
A 在合适的位置存入数据
B 取出数据
4, 回传数据
A startActivityForResult(intent,requestCode);
A startActivityForResult(intent,requestCode);
B setResult(resultCode, Intent data);
A 重写onActivityResult(requestCode,resultCode,data);
实例:选取头像图片
页面A:
public class MainActivity extends Activity {private ImageView iv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);iv = (ImageView) findViewById(R.id.iv);}public void show(View v) {Intent intent = new Intent(MainActivity.this, InfoActivity.class);// 带返回数据启动startActivityForResult(intent, 1);}/** * 获取回传的数据 */@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == 1 && resultCode == RESULT_OK) {// 为图片空间设置内容 参数一key 参数二 默认值int ImageID = data.getIntExtra("imageID", R.drawable.ic_launcher);iv.setImageResource(ImageID);}}}
<ImageView android:id="@+id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:src="@drawable/ic_launcher" /> <Button android:id="@+id/b" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/iv" android:onClick="show" android:layout_centerHorizontal="true" android:layout_marginTop="20dp" android:text="选取头像" />
页面B:
public class InfoActivity extends Activity {private RadioGroup rg;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.anfoactivity);rg = (RadioGroup) findViewById(R.id.rg);}// 点击按钮将图片的ID回传给Mainactivity页面public void submit(View v) {// 得到当前选中的RadioButton的idint checkedID = rg.getCheckedRadioButtonId();int imageID = R.drawable.ic_launcher;switch (checkedID) {case R.id.rb1:imageID = R.drawable.ic_launcher;break;case R.id.rb2:imageID = R.drawable.ic_launcher;break;case R.id.rb3:imageID = R.drawable.ic_launcher;break;case R.id.rb4:imageID = R.drawable.aa;break;case R.id.rb5:imageID = R.drawable.ic_launcher;break;case R.id.rb6:imageID = R.drawable.ic_launcher;break;}// 参数一返回码 参数二 intent意图对象Intent data = new Intent();data.putExtra("imageID", imageID);setResult(RESULT_OK, data);// 关闭当前页面finish();}}
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="请选择你喜欢的头像" /> <RadioGroup android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:id="@+id/rg"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/rb1" android:text="头像一" android:drawableRight="@drawable/ic_launcher" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/rb2" android:text="头像二" android:drawableRight="@drawable/ic_launcher" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/rb3" android:text="头像三" android:drawableRight="@drawable/ic_launcher" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/rb4" android:text="头像四" android:drawableRight="@drawable/aa" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/rb5" android:text="头像五" android:drawableRight="@drawable/ic_launcher" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/rb6" android:text="头像六" android:drawableRight="@drawable/ic_launcher" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="提交" android:layout_marginTop="20dp" android:onClick="submit" /> </RadioGroup>
0 0
- Activity的生命周期及传值
- Activity及Activity的生命周期
- Activity的生命周期及状态
- Activity的生命周期及方法
- 关于Activity及Activity的生命周期
- Activity的传值和生命周期
- Android Activity的生命周期及相应函数
- onWindowFocusChanged重要作用及Activity的生命周期
- Activity的生命周期及加载模式
- Activity的四个状态及生命周期
- activity的生命周期及传递数据
- Activity的生命周期及启动模式整理
- android中Activity的生命周期及应用
- 【面试】activity的生命周期及应景场景
- Activity的生命周期及异常情况分析
- Android Activity的生命周期及启动模式
- Activity的生命周期及A跳转B的生命周期
- Activity的生命周期及安卓中常见情况的生命周期走向
- 从零开始学习jQuery (八) 插播:jQuery实施方案
- SpringMVC4.0以后版本返回json格式数据问题
- 手机通知栏
- 树莓派驱动6轴传感器MPU6500与SPI初体验(一)
- JAVA_WEB设计模式3
- Activity的生命周期及传值
- git 上传项目到github
- 从零开始学习jQuery (九) jQuery工具函数
- Hadoop下Mahout配置
- ios的手势操作之UIGestureRecognizer浅析
- 从零开始学习jQuery (十) jQueryUI常用功能实战
- POJ1797 Heavy Transportation
- dfs解救小哈
- POJ 2182 Lost Cows树状数组 *