Intetn的Action屬性:
什麼是Action?
Action是指Intent是指一個要完成的動作,是一個字符串常量。在Intent類裡面定義了大師的Action的常量屬性,例如:ACTION_CALL (打電話) ACTION_EDIT(編輯數據)等等,除此之外,我們可以使用setAction()函數來設置IntnetAction屬性,使用getAction()來獲得Action
1、 自定義Action:
再看Intent構造函數:
public Intent ()
默認的構造函數
public Intent (Intent o)
通過一個創建好的Intent復制過來
public Intent (String action)
通過指定的動作創建Intent,至於一些常見的動作將在後面指出
public Intent (String action,Uri uri)
通過指定的action和uri創建一個Intent
public Intent (Context packageContext,Class<?> cls)
參數說明:
packageContext:應用程序上下文
cls:接收Intent的目標組件
public Intent (String action,Uri uri,Context packageContext, Class<?> cls)
參數說明:
action:指定的action 例如:ACTION_VIEW
packageContext:應用程序上下文
cls:接收Intent的目標組件
uri:指定的uri
啟動Activity
1、 顯示啟動:必須指明啟動的Activity所在的類
// 創建一個Intent 應用程序上下文 目標組件
- Intent intent = new Intent(IntentDemo01Activity.this,
- ActivityToStart.class);
- //顯示啟動Activity
- startActivity(intent);
示例代碼:
- package com.jiahui.activity;
-
- import Android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
-
- public class IntentDemo01Activity extends Activity {
-
- private Button myBtn;
-
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- myBtn = (Button) findViewById(R.id.myBtn);
- myBtn.setText("啟動ActivtiToStart");
- myBtn.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- // 創建一個Intent 應用程序上下文 目標組件
- Intent intent = new Intent(IntentDemo01Activity.this, ActivityToStart.class);
- //顯示啟動Activity
- startActivity(intent);
- }
- });
- }
- }
- package com.jiahui.activity;
-
- import android.app.Activity;
- import android.os.Bundle;
- import android.widget.TextView;
- public class ActivityToStart extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.start);
- TextView myText=(TextView)findViewById(R.id.startTxt);
-
- myText.setText("啟動的Activity");
-
- }
-
- }
2、 隱式啟動:由Android系統根據Intent的動作和數據來決定啟動哪一個Activity,只包含需要執行的動作和所包含的數據,無需指明具體哪一個Activity
- package com.jiahui.activity;
-
- import android.app.Activity;
- import android.content.Intent;
- import android.net.Uri;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
-
- public class IntentDemo02Activity extends Activity {
- private Button myBtn;
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- myBtn = (Button) findViewById(R.id.myBtn);
- myBtn.setText("隱式");
- myBtn.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- // 浏覽
- // Intent intent = new Intent(Intent.ACTION_VIEW, Uri
- // .parse("http://www.goole.com.cn"));
- //
- // 顯示撥號盤
- Intent intent = new Intent(Intent.ACTION_DIAL);
- startActivity(intent);
- }
- });
- }
- }
綜合實例1:
- package com.jiahui.activity;
- import android.app.Activity;
- import android.content.Intent;
- import android.net.Uri;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.EditText;
- public class IntentWebViewDemoActivity extends Activity {
- private Button myBtn;
- private EditText myText;
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- myBtn = (Button) findViewById(R.id.myBtn);
- myText = (EditText) findViewById(R.id.edtxt01);
- myBtn.setText("浏覽");
- myBtn.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- String uriString = myText.getText().toString();
- Intent intent = new Intent(Intent.ACTION_VIEW, Uri
- .parse(uriString));
-
- startActivity(intent);
-
- }
- });
-
- }
- }