1. 程式人生 > >android元件間信使--Intent之Action屬性

android元件間信使--Intent之Action屬性

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);
效果圖:點選【測試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】,得到右邊的圖