15、從頭學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  應用程序上下文  目標組件

           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);

        }
      });

   }
}

如需轉載引用請註明出處:http://blog.csdn.net/jiahui524
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章