浅谈:Android开发之intent

Intent意为:意图。简单的理解就是用来从一个Activity/Service跳转到另一个Activity/Service中,并可以携带数据,也可以在这个程序调用别的程序。这样我们虽然不懂如何结息条形码,却可以通过开放的android平台,在我们的程序调用专家写好的程序来实现功能。

 

Intent的用法:

 

(1)从MainActivity跳转到NewActivity

Intent intent=newIntent(MainActivity,this,NewActivity.this);

startAcitivity(intent);

 

(2)从MainActivity跳转到NewActivity,并携带数据

有两种写法,本质上并无很大区别

Intent intent=new Intent(MainActivity,this,NewActivity.this);

Bundle bundle=new Bundle();

bundle.putString("name","value");

intent.putExtras(bundle);

startAcitivity(intent);

 

接收

mintent=this.getIntent();

bundle=mintent.getExtras();

Stringa=bundle.getString("name");

 

---------------------------------------------------------------------------------

 

Intent intent=newIntent(MainActivity,this,NewActivity.this);

intent.putExtra("name","value");

startAcitivity(intent);

 

接收

Stringa=mintent.getStringExtra("name");

第一种方法当bundle的值要传给多个activity时较为简便。

 

(3)从MainActivity跳转到NewActivity,并携带数据,并且要从NewActivity跳转回MainActivity且携带数据。

 

Intent intent=newIntent(MainActivity.this,NewActivity.class);

Bundle bundle=new Bundle();

bundle.putString("name","value");

intent.putExtras(bundle);

startActivityForResult(intent,1234);

 

protected void onActivityResult(intrequestCode,int resultCode,Intent data)

{

  if (resultCode==4321)

  {

    String a=data.getStringExtra("name");

    Toast.makeText(this, a, Toast.LENGTH_LONG).show();;

  }

  super.onActivityResult(requestCode, resultCode, data);

}

 

//请求码requestCode=1234

 

mintent.putExtra("name", "你好");

setResult(4321, mintent);

finish();

 

//结果码result=4321

 

//程序例子A调用程序例子B

 

intent.setClassName("com.example.lizib","com.example.lizib.MainActivity");

Bundle bundle=new Bundle();

bundle.putString("STR_INPUT","HI,我来自例子A...");

intent.putExtras(bundle);

startActivityForResult(intent, 1234);

 

protected void onActivityResult(intrequestCode,int resultCode,Intent data)

{

if (resultCode!=RESULT_OK)

{

return;

}

else

{

Stringaaa=data.getStringExtra("STR_BACK");

tv.setText("来自例子B:"+aaa);

}

super.onActivityResult(requestCode,resultCode, data);

}

 

//接收

 

Bundle bundle=getIntent().getExtras();

strRet=bundle.getString("STR_INPUT");

 

//返回

 

Bundle bundle=new Bundle();

bundle.putString("STR_BACK","我是例子B");

Intent intent=new Intent();

intent.putExtras(bundle);

setResult(RESULT_OK,intent);

finish();

 

另外推荐一款我常用第三方APP测试工具:www.ineice.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值