Android组件之Intent

一、Intent对象及其属性

1.1 Intent的ComponentName属性

Intent查找组件策略,显示方式直接通过组件名称Component name来查找。Intent的组件名称对象由ComponentName类来封装,组件名称包含包名称和类名称,被声明在AndroidManifest.xml文件中

组件名称通过setComponent(),setClass(),setClassName()设置,通过getComponent()获得。

实例DEMO重要代码:

①在Button单击方法中创建组件名称对象,指向一个Activity,实例化Intent,并为其设置组件名称属性,启动Acticity

public void onClick(View v) {
				//实例化组件名称
				ComponentName cn = new ComponentName(MainActivity.this, MyActivity.class);
				//实例化Intent
				Intent intent = new Intent();
				//为Intent设置组件名称属性
				intent.setComponent(cn);
				//启动Activity
				startActivity(intent);
			}

②在另外一个Acticity的onCreate()方法实例化文本框,获得Intent从而获得组件名称对象,从组件名称对象中获取包名称和类名称

		protected void onCreate(Bundle savedInstanceState) {
			// TODO Auto-generated method stub
			super.onCreate(savedInstanceState);
			setContentView(R.layout.my_layout);
			//获得intent对象
			Intent intent=getIntent();
			//获得组件名称对象
			ComponentName cn = intent.getComponent();
			//获得包名
			String packageName = cn.getPackageName();
			// 获得类名称
			String className = cn.getClassName();
			//实例化TextView
			textView = (TextView)findViewById(R.id.textView1);
			textView.setText(" 组件包名称:"+packageName+",类名称:"+className);
		}

1.2 Intent的Action属性

Action是指Intent要完成的动作,是一个字符串常量。Intent类里面定义了大量的Action常量属性,例如ACTION_CALL、ACTION_EDIT、ACTION_BATTEAY_LOW。我们可以自己定义Action来使用。

通过setAction()来设置Intent的Action属性,使用getAction来获得Intent的Action属性。

①自定义Action属性

为Intent定义一个Action属性来访问,Action属性是一个字符串。我们在程序中定义,并在要访问最贱的IntentFilter中声明就可以。

	/定义Action属性常量
	private static final String MY_ACTION = "com.hanfeng.intent_action.MY_ACTION";		
	public void onClick(View v) {
				//实例化Intent
				Intent intent = new Intent();
				//为Intent设置Action属性
				intent.setAction(MY_ACTION);
				//启动Activity
				startActivity(intent);
			}

在另外一个Acticity的onCreate()方法实例化文本框,获得Intent实例,从而获得属性并显示在textView里面

		protected void onCreate(Bundle savedInstanceState) {			
			super.onCreate(savedInstanceState);
			setContentView(R.layout.my_layout);
			//获得intent对象
			Intent intent=getIntent();			
			//获得Action
			String action= intent.getAction();
			//实例化TextView
			textView = (TextView)findViewById(R.id.textView1);
			textView.setText(action);
		}
在AndroidManifest.xml配置文件中添加一个Acticity的声明,在IntentFilter元素中指定Action属性

	<activity android:name=".MyActivity" >
            <intent-filter>
                <action android:name="com.hanfeng.acticity。.MY_ACTION" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>


尚未完结笔记



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值