IT狗

安卓基础之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");}}

此文由 IT狗 编辑,本网站所发布展示的作品/文章版权归原作者所有,任何商业用途均须联系作者!

相关推荐

评论 暂无评论