码迷,mamicode.com
首页 > 其他好文 > 详细

2.Intent

时间:2015-08-20 00:57:24      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

  1.Intent分为显示调用和隐式调用

  a.显示调用:

  Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
  startActivity(intent);
 
  b.隐式调用:
  第一步,先编写清单文件
  <activity android:name=".SecondActivity" >
      <intent-filter>
          <action android:name="com.example.activityteset.ACTION_START" />
          <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
  </activity>
  第二步,编写代码
  Intent intent = new Intent("com.example.activityteset.ACTION_START");
  startActivity(intent);
 
  2.Intent除了可以进行页面的跳转外,还可以传值
  方式1,向第二个页面传值
  页面1代码:
  Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
  intent.putExtra("extra_data","此处是需要传递的值");-->此处是采用键值对的方式来进行的,extra_data是键,后面是值
  startActicity(intent);
  页面2代码:
  Intent intent = getIntent();-->获得Intent
  String data = intent.getStringExtra("extra_data");-->根据extra_data这个键,取出与之对应的值
  Log.d("SecondActivity",data);-->从log中输出
 
  方式2,向上一个页面传值
  页面1代码:
  Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
  startActivityForResult(intent,1);---第一个参数是意图,第二个参数可以是任意唯一数字
  /** 由于使用的是startActivityForResult调用的第二个活动,所以在第二个活动结束前会调用onActivityResult方法,所以要重写该方法*/
  switch(requestCode){
      case 1:---对应上面startActivityForResult(intent,1);l里的1
          if(resultCode == RESULT_OK){
              String returndata = data.getStringExtra("extra_data");
              Log.d("FirstActivity",returndata);
          }
          break;
      default:
  }
  页面2代码:
  Intent intent = new Intent();
  intent.putExtra("extra_data","此处是要返回的数据");
  setResult(RESULT_OK,intent);---第一个参数代表处理结果,一般写RESULT_OK和RESULT_CANCELED这两个值
  finish();

   3.活动的生命周期:

  onCreate(建立)-->onStart(开始)-->onResume(继续)-->onPause(暂停)-->onStop(停止)-->onDestory(销毁)

   4.若想设置一个对话框似的activity,则需要在清单文件里设置主题

  <activity android:name=".DialogActivity" android:theme="@android:style/Theme.Dialog"></activity>

   5.如果当前的activity被打断,并且希望保留打断之前的数据,那么需要重写onSaveInstanceState方法

  super.onSaveInstanceState(outState);---outState是Bundle类型的对象
  outState.putString("data_key","此处填写要保存的信息");
  在onCreate方法中恢复数据
  super.onCreate(saveInstanceState);
  if(saveInstanceState!=null){
      String data = saveInstanceState.getString("data_key");
      Log.d(FirstActivity,data);
  }

   6.活动的启动模式

  standard---调用一个Activity就会覆盖当前栈,即使被调用是当前的Activity,那么也会覆盖
  singleTop---如果被调用是当前的Activity,并且处于栈顶,那么就不会再重新覆盖
                     如果被调用的Activity不在栈顶,那么就会重新覆盖,但是此时的Activity和栈底部的Activity在本质来讲已经不是同一个Activity了
  singleTask---被调用的Activity在当前栈中是唯一的,如果调用底部的Activity,那么它上面的所有Activity全部执行出栈操作
  singleInstance---设立单独的一个栈来管理,比如:A和C是一个栈,B是单独的一个栈,正确顺序是A进入B再进入C,但是返回的时候是C->A->B->退出

   7.控制手机返回键的功能要重写onBackPressed方法

2.Intent

标签:

原文地址:http://www.cnblogs.com/FruitBoy/p/4743717.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!