android元件間信使--Intent之Action屬性
阿新 • • 發佈:2019-01-08
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,新增監聽,主要程式碼如下:
ActionActivity.java中主要的程式碼: //設定佈局//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); } });
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); 效果圖:點選【測試Intent的action】
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】,得到右邊的圖