Action是指Intent要完成的动作,是一个字符串常量。在Intent类里面定义了大量的Action常量属性,例如:ACTION_CALL(打电话)、ACTION_EDIT(编辑数据)、ACTION_BATTERY_LOW(低电量广播action)等。我们也可以自定义Action来使用。
setAction()设置IntentAction属性,使用getAction来获得Intent的Action属性。
1、自定义action属性:Action属性是一个字符串,在程序中定义,并在要访问组件的IntentFilter中声明就可以使用了。
AndroidManifest.xml中
在MainActivity.java中,声明一个btn,并实例化Button,添加监听,主要代码如下:
//btn03点击事件
btn03.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//实例化Intent
Intent intent = new Intent();
//设置Intent action属性
intent.setAction(Intent.ACTION_GET_CONTENT);
//设置intent type属性
intent.setType("vnd.android.cursor.item/phone");
//启动activity
startActivity(intent);
}
});
ActionActivity.java中主要的代码:
//设置布局
setContentView(R.layout.my_layout);
//实例化textview
tv = (TextView)findViewById(R.id.text01);
//得到Intent
Intent intent = this.getIntent();
//得到action
String ac = intent.getAction();
//展示
tv.setText(ac);
setContentView(R.layout.my_layout);
//实例化textview
tv = (TextView)findViewById(R.id.text01);
//得到Intent
Intent intent = this.getIntent();
//得到action
String ac = intent.getAction();
//展示
tv.setText(ac);
2、系统Action属性
AndroidManifest.xml在上图中已经贴出来了
MainActivity.java主要代码:
//定义Action的属性常量
private static final String MY_ACTION = "com.test.action.MY_ACTION";
//btn02点击事件
btn02.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//实例化Intent
Intent intent = new Intent();
intent.setAction(MY_ACTION);
startActivity(intent);
}
});
效果图:点击【系统action】,得到右边的图