当前位置: 移动技术网 > 移动技术>移动开发>Android > 安卓基础之Intent的用法

安卓基础之Intent的用法

2018年11月14日  | 移动技术网移动技术  | 我要评论

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");
    }
    }

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网