android--Intent和IntentFilter详解

Intent用于启动Activity, Service, 以及BroadcastReceiver三种组件, 同时还是组件之间通信的重要媒介.

使用Intent启动组件的优势
1, Intent为组件的启动提供了一致的编程模型. 无论想要启动的组件是Activity, Service, 还是BroadcastReceiver, 都可以使用Intent封装启动的意图.
2, 在某些时候, 应用程序只是想启动具有某种特征的组件, 并不想和某个特定的组件耦合. 使用Intent可以方便的达到这种高层次解耦的目的.

Intent的Component属性
Intent对象的setComponent(ComponentName comp)方法用于设置Intent的Component属性. ComponentName包含如下几个构造器:
ComponentName(String pkg, String cls)
ComponentName(Context pkg, String cls)
ComponentName(Context pkg, Class

String data = "Hello SecondActivity" ;
Intent intent = new Intent (当前Activity. this, 目标Activity.class ) ;
intent.putExtra( "传入名称", data) ;
startActivity(intent) ;

接受Activity代码:

Intent intent = getIntent();
String data = intent.getStringExtra( "传入名称" );
Intent:用于参数回传

先有传入:

intent.setClass(MainActivity. this, Register_Activity.class );
startActivityForResult(intent,1);
startActivityForResult(Intent intent,int RequestCode);//把intent要启动的目标Activity设置一个RequestCode值(当然RequestCode的值使大于等于0的一个值)。

在回传:

Intent intent = new Intent();
intent.putExtra("data1",name.getText().toString() );
intent.putExtra("data2",textP1);
setResult(RESULT_OK,intent);
finish();//结束当前Activity

在接收:重写方法 onActivityResult(intrequestCode, intresultCode,Intent data)
onActivityResult(int requestCode, int resultCode, Intent intent)
RequestCode的作用 :区别请求的activity,android将每个请求设定一个大于等于0的int值,这就是requestcode。
resultCode参数对应于子模块中setResut(int resultCode, Intent intent)函数中的resultCode值,用于区别不同的返回结果(如请求正常、请求异常等)。
由此,在onActivityResult函数中即可利用requestCode区别开不同的返回结果。
而onActivityResult中的resultCode参数对应于子模块中setResut(int resultCode, Intent intent)函数中的resultCode值,用于区别不同的返回结果(如请求正常、请求异常等)。

protected void onActivityResult(int requestCode, int resultCode , Intent data) {
    switch (requestCode) {
        case 1:
            if (resultCode == RESULT_OK) {
                data1 = data.getStringExtra( "data1");
                data2 = data.getStringExtra( "data2");
                name.setText( data1);
                edit_pwd.setText( data2);
                nameY = data1;
                edit_pwdyY = data2;
            }
            break;
        default:
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值