歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android開發教程:機器人的意圖之Intent的Action

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  應用程序上下文  目標組件

  1. Intent intent = new Intent(IntentDemo01Activity.this,  
  2.       ActivityToStart.class);  
  3. //顯示啟動Activity   
  4. startActivity(intent);  

示例代碼:

  1. package com.jiahui.activity;  
  2.   
  3. import Android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.os.Bundle;  
  6. import android.view.View;  
  7. import android.view.View.OnClickListener;  
  8. import android.widget.Button;  
  9.   
  10. public class IntentDemo01Activity extends Activity {  
  11.    
  12.        private Button myBtn;  
  13.   
  14.        public void onCreate(Bundle savedInstanceState) {  
  15.               super.onCreate(savedInstanceState);  
  16.               setContentView(R.layout.main);  
  17.               myBtn = (Button) findViewById(R.id.myBtn);  
  18.               myBtn.setText("啟動ActivtiToStart");  
  19.               myBtn.setOnClickListener(new OnClickListener() {  
  20.                      public void onClick(View v) {   
  21.                             // 創建一個Intent  應用程序上下文  目標組件   
  22.                             Intent intent = new Intent(IntentDemo01Activity.this,                                        ActivityToStart.class);  
  23.                             //顯示啟動Activity   
  24.                             startActivity(intent);  
  25.                      }  
  26.               });  
  27.        }  
  28. }  

 

  1. package com.jiahui.activity;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.widget.TextView;  
  6. public class ActivityToStart extends Activity {  
  7.        @Override  
  8.        protected void onCreate(Bundle savedInstanceState) {  
  9.               super.onCreate(savedInstanceState);  
  10.               setContentView(R.layout.start);  
  11.               TextView myText=(TextView)findViewById(R.id.startTxt);  
  12.   
  13.               myText.setText("啟動的Activity");  
  14.   
  15.        }  
  16.   
  17. }  

2、  隱式啟動:由Android系統根據Intent的動作和數據來決定啟動哪一個Activity,只包含需要執行的動作和所包含的數據,無需指明具體哪一個Activity

  1. package com.jiahui.activity;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.net.Uri;  
  6. import android.os.Bundle;  
  7. import android.view.View;  
  8. import android.view.View.OnClickListener;  
  9. import android.widget.Button;  
  10.    
  11. public class IntentDemo02Activity extends Activity {  
  12.        private Button myBtn;  
  13.        public void onCreate(Bundle savedInstanceState) {  
  14.               super.onCreate(savedInstanceState);  
  15.               setContentView(R.layout.main);  
  16.               myBtn = (Button) findViewById(R.id.myBtn);  
  17.               myBtn.setText("隱式");   
  18.               myBtn.setOnClickListener(new OnClickListener() {  
  19.                      public void onClick(View v) {  
  20.                             // 浏覽   
  21.                             // Intent intent = new Intent(Intent.ACTION_VIEW, Uri   
  22.                             // .parse("http://www.goole.com.cn"));   
  23.                             //                             
  24.                             // 顯示撥號盤   
  25.                             Intent intent = new Intent(Intent.ACTION_DIAL);  
  26.                            startActivity(intent);  
  27.                      }  
  28.               });  
  29.        }  
  30. }  

綜合實例1:

  1. package com.jiahui.activity;  
  2. import android.app.Activity;  
  3. import android.content.Intent;  
  4. import android.net.Uri;  
  5. import android.os.Bundle;  
  6. import android.view.View;  
  7. import android.view.View.OnClickListener;  
  8. import android.widget.Button;  
  9. import android.widget.EditText;  
  10. public class IntentWebViewDemoActivity extends Activity {  
  11.    private Button myBtn;  
  12.    private EditText myText;  
  13.    public void onCreate(Bundle savedInstanceState) {  
  14.       super.onCreate(savedInstanceState);  
  15.       setContentView(R.layout.main);  
  16.       myBtn = (Button) findViewById(R.id.myBtn);  
  17.       myText = (EditText) findViewById(R.id.edtxt01);  
  18.       myBtn.setText("浏覽");  
  19.       myBtn.setOnClickListener(new OnClickListener() {  
  20.         @Override  
  21.         public void onClick(View v) {  
  22.            String uriString = myText.getText().toString();  
  23.            Intent intent = new Intent(Intent.ACTION_VIEW, Uri  
  24.                  .parse(uriString));  
  25.   
  26.            startActivity(intent);  
  27.   
  28.         }  
  29.       });  
  30.   
  31.    }  
  32. }  
Copyright © Linux教程網 All Rights Reserved