安卓基础之Intent的用法

Intent的用法


意图的分类和用法:

 
隐式意图:通过指定一组数据或者动作实现
 

Intent intent=new Intent();
intent.setAction("");
intent.addCatogary("");
intent.setDataAndType("","");         //或者intent.setData,具体根据清单文件配置
startActivity(intent);

 
显示意图:通过指定具体的activity实现
 

Intent intent=new Intent(this,TestActivity.class);
startActivity(intent);

 
 
 

意图的用途:

 
显示意图用于开启自己应用内的Activity.
 
隐式意图用于开启其他应用的Activity(主要是系统应用),相比显示意图安全性较差.
 
 
 

意图的实现:

 
通过Intent由MainActivity.class跳转至TestActivity.class:
 
MainActivity.class要实现代码:
 
Intent intent=new Intent(this,TestActivity.class); String name="eason"; Intent intent=new Intent(this,TestActivity.class); intent.putExtra("name",name); //Activity间数据传递的方法 startActivity(intent);
 
TestActivity.class要实现代码:
 

Intent intent=getIntent();
String name=intent.getStringExtra("name");      //传递的是什么数据类型,就按照传递的数据类型取

 
 
在以上的例子中,数据由MainActivity传到了TestActivity.class,那么如果想要把TestActivity.class数据返回给MainActivity要怎么做呢?
 
假如在TestActivity.class页面中点击按钮把选中号码返回,
 
那么TestActivity.class要实现代码:
 

public void onclick(View view){
Intent intent=new Intent();
String phone="123";
intent.putExtra("phone",phone);
setResult(10,intent);       //调用父类的方法setRequest(int Resustcode,Intent),设置请求码
finish();                   //该方法将结束当前Activity,返回唤醒该Activity的Activity
}

 
MainActivity.class要实现的代码:
 

  1. 采用startActivityForRequest()方法而不是startActivity()
     

    Intent intent=new Intent(this,TestActivity.class);
    
    //设置请求码,startActivityForResult(Intent intent,int requestcode)
    startActivityForResult(intent,1);    
    
  2. 重写方法onActivityResult()
     

    //该方法在我们开启的Activity关闭时调用
    protected void onActivityResult(int requestCode,int resultCode,Intent data){
    if(resultCode==10){                          //通过请求码或者结果码,可以辨别返回数据的来源
    String phone=data.getStringExtra("phone");
    }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竖子敢尔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值