Activity的生命周期及传值

来源:互联网 发布:淘宝售前客服怎么做 编辑:程序博客网 时间:2024/06/05 16:53
Activity的生命周期  (7个)  
  从创建到销毁的过程:
  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);

     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);

  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
原创粉丝点击