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