Intent中Component使用

今天来学习下Intent的component的用法

Intent是在作为Activity之间传递数据的组件,通过intent将数据封装起来,传递到你需要传递的activity中,再在目标Activity中获取到,进行使用

之前没有用过component,一直使用的最简洁的方式来的

  1. button.setOnClickListener(new Button.OnClickListener() {  
  2.     @Override  
  3.     public void onClick(View arg0) {  
  4.         // TODO Auto-generated method stub   
  5.         Intent intent = new Intent();  
  6.         String s = "This is a Test.";  
  7.         intent.putExtra("id", s);  
  8.           
  9.         intent.setClass(MainActivity.this, MyActivity.class);  
  10.         startActivity(intent);  
  11.     }  
  12. });  
		button.setOnClickListener(new Button.OnClickListener() {
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Intent intent = new Intent();
				String s = "This is a Test.";
				intent.putExtra("id", s);
				
				intent.setClass(MainActivity.this, MyActivity.class);
				startActivity(intent);
			}
		});



在目标Activity中获取 传递过去的数据:

  1. TextView text = (TextView)findViewById(R.id.text);  
  2.   
  3. Intent intent = getIntent();  
  4. String str = intent.getStringExtra("id");  
  5. text.setText(str);  
		TextView text = (TextView)findViewById(R.id.text);
		
		Intent intent = getIntent();
		String str = intent.getStringExtra("id");
		text.setText(str);

                              

现在使用components来做这件事

有两种方式:

  1. ComponentName com = new ComponentName(MainActivity.this,MyActivity.class);//first    
  2.               
  3. ComponentName com = new ComponentName("com.example.testcomponent","com.example.testcomponent.MyActivity");//second  
	ComponentName com = new ComponentName(MainActivity.this,MyActivity.class);//first 
				
	ComponentName com = new ComponentName("com.example.testcomponent","com.example.testcomponent.MyActivity");//second

第二种方式的第二个参数必须写全包名,不然会报错的微笑

一样的,主Activity中:

  1. button.setOnClickListener(new Button.OnClickListener() {  
  2.     @Override  
  3.     public void onClick(View arg0) {  
  4.         // TODO Auto-generated method stub   
  5.         Intent intent = new Intent();  
  6.         ComponentName com = new ComponentName(  
  7.                 "com.example.testcomponent",  
  8.                 "com.example.testcomponent.MyActivity");  
  9.         intent.setComponent(com);  
  10.         String s = "This is a Test.";  
  11.         intent.putExtra("id", s);  
  12.         startActivity(intent);  
  13.     }  
  14. });  
		button.setOnClickListener(new Button.OnClickListener() {
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Intent intent = new Intent();
				ComponentName com = new ComponentName(
						"com.example.testcomponent",
						"com.example.testcomponent.MyActivity");
				intent.setComponent(com);
				String s = "This is a Test.";
				intent.putExtra("id", s);
				startActivity(intent);
			}
		});


在目标Ativity中获取数据和上面是一样的,但是,在目标Activity中就可以获取到源目标,知道是从哪儿传递过来的:

  1. text = (TextView)findViewById(R.id.text);  
  2.   
  3. Intent intent = getIntent();  
  4. String str = intent.getStringExtra("id");  
  5. ComponentName com = intent.getComponent();  
  6. String pkgName = com.getPackageName();  
  7. String className = com.getClassName();  
  8. text.setText(str + "\n" + pkgName + "\n" + className);  
		text = (TextView)findViewById(R.id.text);
		
		Intent intent = getIntent();
		String str = intent.getStringExtra("id");
		ComponentName com = intent.getComponent();
		String pkgName = com.getPackageName();
		String className = com.getClassName();
		text.setText(str + "\n" + pkgName + "\n" + className);



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值