您的位置首页生活百科

android intent

android intent

的有关信息介绍如下:

android intent

android intent负责程序跳转和传递数据。如果把Activity比作积木的话,那么Intent就是胶水。也就是把不同的继母粘连起来。或者说Activity是不同的手机屏幕,而intent就是把不同的手机屏幕粘连起来的胶水。另外,学习android intent,还要了解android activity知识,请参阅相关文档。下图是“2Intent应用举例”图示。

Intent用法

1.1启动一个特定的Activity

Intent intent=new Intent(CurrentActivity.this,OtherActivity.class);

startActivity(intent);

1.2启动一个未指明的Activity

Intent inter=new Intent(Intent.ACTION_DIAL,Uri.parse(“tel:115-1345”));

startActivity(intent);

1.3处理一个Activity的返回值

Public void onCreate(Bundle saveInstanceState){

super.onCreate(savedInstanceState);

listener1=new OnClickListener(){

public void onClick(View v){

Intent intent1=new Intent(ActivityMain.this,Activity1.class);

Intent1.putExtra(“activityMain”,”数据来自activityMain”);

startActivityForResult(intent1,REQUEST_CODE);

}

};

Listener2=new OnClickListener(){

public void onClick(View v){

setTitle(“这是在ActivityMain”);

Intent intent2=new Intent(ActivityMain.this,Activity2.class);

startActivity(intent2);

}

};

setContentView(R.layout.main);

button1=(Button)findViewById(R.id.button1);

button1.setOnClickListener(listener1);

button2=(Button)findViewById(R.id.button2);

button2.setOnClickListener(listener2);

setTitle(“ActivityMain”);

}

@Override

Protected void onActivityResult(int requestCode,int resultCode,Intent data){

If(requestCode==REQUEST_CODE){

If(resultCode==RESULT_CANCELED)

setTitle(“取消”);

else if(resultCode==RESULT_OK){

String temp=null;

Bundle extras=data.getExtras();

If(extras!=null){

Temp=extras.getString(“store”);

}

setTitle(temp);

}

}

}

Intent应用举例

Activity01.java

public class Activity01 extends Activity

{

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

/* 设置显示main.xml布局 */

setContentView(R.layout.main);

/* findViewById(R.id.button1)取得布局main.xml中的button1 */

Button button = (Button) findViewById(R.id.button1);

/* 监听button的事件信息 */

button.setOnClickListener(new Button.OnClickListener() {

public void onClick(View v)

{

/* 新建一个Intent对象 */

Intent intent = new Intent();

/* 指定intent要启动的类 */

intent.setClass(Activity01.this, Activity02.class);

/* 启动一个新的Activity */

startActivity(intent);

/* 关闭当前的Activity */

Activity01.this.finish();

}

});

}

}

Activity02.java

public class Activity02 extends Activity

{

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

/* 设置显示main2.xml布局 */

setContentView(R.layout.main2);

/* findViewById(R.id.button2)取得布局main.xml中的button2 */

Button button = (Button) findViewById(R.id.button2);

/* 监听button的事件信息 */

button.setOnClickListener(new Button.OnClickListener() {

public void onClick(View v)

{

/* 新建一个Intent对象 */

Intent intent = new Intent();

/* 指定intent要启动的类 */

intent.setClass(Activity02.this, Activity01.class);

/* 启动一个新的Activity */

startActivity(intent);

/* 关闭当前的Activity */

Activity02.this.finish();

}

});

}

}

Android系统自带的Action介绍

3.1ACTION_MAIN

Android.intent.action.MAIN,在每个AndroidManifest.xml问洞中都能看到,标记当前的Activity作为一个程序的入口。

3.2ACTION_VIEW

将数据显示给用户

3.3ACTION_DIAL

用于描述给用户打电话的动作

3.4ACTION_PICK

从特定的一组数据中进行选择数据操作

3.5ACTION_DEIT

编辑特定的数据

3.6ACTION_DELETE

删除特定的数据

与动作Action相关联的数据Data介绍

VIEW_ACTION content://contacts/1显示标示符为1的联系人的详细信息

EDIT_ACTION content://contacts/1编辑标示符为1的联系人的详细信息

VIEW_ACTION content://contacts/显示所有联系人列表

PICK_ACTION content://contacts/显示所有联系人的列表,并且允许用户在列表中选择一个联系人,然后把这个联系人返回给父Activity

Intent中其他属性介绍

类别category:它为执行动作的附加信息

数据类型type:显式指定Intent的目标组件的类名称。

组件component:指定Intent的目标组件的类名称

附加信息extras:是其他所有附加信息的集合

Android解析Intent实现

6.1直接Intent:指定了component属性的Intent或者setClass

6.2间接Intent:没有指定comonent属性的Intent。

6.3如果Intent指明了action,则目标组件的IntentFilter的action列表中就必须包含有这个action,否则不匹配

6.4如果Intent没有提供type,系统将从data中得到数据类型

6.5如果Intent中的数据不是具体内容而是URI形式的话,则将根据Intent中数据的scheme进行匹配

6.6如果Intent指定了一个或多个category,这些类别必须全部出现在组件的类别列表中。

学习android intent,还要了解android activity知识,请参阅相关文档。