Android四大组件之Activity

 

一、活动

活动(Activity)是可以包含用户界面(布局文件)的组件,主要用于与用户进行交互。

活动的启动模式(4种)格式为android:launchMode="     "  双引号内可填写standard 或 singleTop 或 singleTask 或SingleInstance

四者之间的区别:

standard:每次都会创建新活动实例,这是默认的活动启动模式;

singleTop:启动活动时如果发现返回栈的栈顶已经是该活动,则直接使用它,不会再创建新活动实例;

singleTask:启动时发现返回栈存在该活动实例则直接使用,并把该活动之上的所有活动统统退出栈;

SingleInstance:该模式下的活动有单独的返回栈,有利于活动实例共享;

二、Intent

Intent是用于活动之间的跳转,Intent又分为显式Intent(意图明显,指定某个活动)和隐式Intent(指定更为抽象的action和category)

举例:由当前的firstActivity跳转到SecondActivity

显式

在firstActivity.class中

Intent i =new Intent(firstActivity.this,SecondActivity.class);

startActivity(i);

隐式

先在AndroidMainfest.xml内SecondActivity中声明action 和 category

<activity android:name="SecondActivity">
   <intent-filter>
      <cation android:name="XXX"/>
      <categroy android:name="ZZZ"/>
   </intent-filter>
</activity>

然后在firstActivity.class中

Intent i =new Intent("XXX");

i.addCategory("ZZZ");

startActivity(i);

注意:隐式Intent还可用于启动其他程序的活动(系统浏览器)

第三、活动间Intent传递数据

1、Intent向下一个活动传递数据:

在FirstActivity.class中发送数据

String data = "sdssdd";

Intent i =new Intent(FirstActivity.this,SecondActivity.class);

i.putExtra("Extra_data",data);

startActivity(i);

在SecondActivity.class接收数据

Intent i =getIntent();

String data = i.getStringExtra("extra_data");

2、Intent返回数据给上一个活动:

在FirstActivity.class中

Intent i =new Intent(FirstActivity.this,SecondActivity.class);

startAcitivityForResult(i,1);//区别上面,1是请求码

/*因为返回时使用回调机制,所以应该在FirstActivity.class重写onActivity()方法*/

onActivity()有三个参赛,第一个为上面的请求码,第二个为下面的结果码,第三个是传过来的Intent实例


在SecondActivity.class中

Intent i = new Intent();

i.putExtra("data_extra",data);

setResult(RESULT_OK,i);//第一个参数为结果码

finish();




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值