activity通信

上节说到,Activity是什么;这次来了解了解Activity通信相关内容。

都知道,人与人交流产生许多不可预知的美。因为交流,信息得意传递;因为交流,任务得以完成;因为交流,生活才有滋有味。

废话少说,进入正题。

1.What is Intent?

在同一个应用程序中往往会使用Intent对象来指定一个Activity,intent 的汉语解释为意图、目的,为何是它,我也不知,但总要有一个表示,大家记住就好了。这个Intent在指定一个Activity后可以通过startActivity或者startActivityForResult来启动这个Activity。除此之外,它还可以调用其它应用程序中的Activity。功能不得不说很强大。

 

2.Can you showan example?

$1封装一个Activity

Intent myIntent= new Intent(this,YourClass.class);

$2传值

myIntent.putExtra(“name”,”jack”);

myIntent.putExtra(“no”,”001”);

myIntent.putExtra(“data”,jsonObject.toString);

$3启动

startActivity(myIntent);

$4新Activity怎样获取

Buddle bundle =getIntent.getExtras();

StringBuffer s=new StringBuffer();

s.append(bundle.getString(“name”));

s.append(bundle.getString(“no”));

s.append (bundle.getString(“data”))

 

3.信息传递是双向的,所以有去有回,那信息怎么回呢?

$1封装Activity方式与上面一样

$2启动

startActivityForResult(myIntent,R.layout.deal);   //R.layout.deal为请求代码

$3接收

当关闭YourClass后,系统会调用Activity类的onActivityResult事件来获得deal的返回值。所以,需要在Main类中覆盖onActivityResult方法来获得deal的返回值。

@override

protected voidonActivityRequest(int requestCode, int resultCode, Intent data){

         Switch(requestCode){

         case R.layout.deal:

                   if(resultCode==20){

         doSomething();

}else if(resultCode==21){

         doSomething();

}

}

}

PS:有人可能要问resultCode从何而来?

这是startActivityForResult方法返回数据的机制决定的,当系统关闭当前Activity时会将Activity里面的值(比如说文本框的)保存在Intent对象中

getIntent().putExtra(“something”,someValue);

setResult(20,getIntent());

从这可以看到20返回值是带有结果的,那可想而知21返回值就不会带结果了

SetResult(21);

 

至此Activity间的通信基本了解清楚。

 

4.前面也说过Intent也可以调用其他应用程序中的Activity,那这里也举个例子吧

直接拨号的例子

Intent call =new Intent(Intent.ACTION_CALL,URI.parse(“tel:”+12345678));

startActivity(call);

 

当然Intent还有其他许多功能,欲知详情,建议各位查看android此类相关文档,这是最直接的学习方法,当然也枯燥,但收获良多,不过鉴于google的访问问题,大家还是翻墙吧。

 

下次将展开android消息提示的相关用法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值