Intent的基本作用

Intent对象详解

一、一个Intent对象包含了一组信息:

1.Component name 指定哪一个activity

2.Action  指定另外一个activity要做什么

3.Data   向另外一个activity传送什么信息

4.Category

5.Extras 额外的添加一些信息 键值对 传送另外一个activity

6.Flags

例:

Activity01.java

 

public class Activity01Activity extends Activity {
	private Button myButton = null;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        myButton = (Button)findViewById(R.id.myButton);
        myButton.setOnClickListener(new MyButtonListenter());//添加监听事件
        
    }
    class MyButtonListenter implements OnClickListener{

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			//生成一个Intent对象
			Intent intent = new Intent();
			intent.putExtra("test","ni hao"); //在intent请求中加入了键值对
			//从哪个Activity跳转到那个Activity
			intent.setClass(Activity01Activity.this, OtherActivity.class);
			Activity01Activity.this.startActivity(intent);
			
			
		}
    	
    }
    
}

 otherActivity.java

 


public class OtherActivity extends Activity{
     private TextView myTextViwe = null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.other); //引用布局文件
        Intent intent = getIntent();//调用getIntent方法得到值
        String zhi = intent.getStringExtra("test");
		myTextViwe = (TextView)findViewById(R.id.myTextView);//那到控件
		myTextViwe.setText(zhi);//拿到字符串
	
	}
}

 

 

<think>嗯,用户想了解Android中的Intent setAction方法的功能和使用。首先,我需要回忆一下Intent基本概念。Intent在Android中用于组件之间的通信,比如启动Activity、Service或者发送广播。setAction方法应该是设置一个动作字符串,用来指定要执行的操作。 根据提供的引用资料,引用[3]提到setAction()是Intent的重要方法之一,通常与setData()和setType()一起使用。比如,ACTION_DIAL用于调起拨号界面,这在引用[1]和[2]的代码示例中可以看到。用户可能想知道如何通过setAction跳转到其他Activity,这时候可能需要配置intent-filter,如引用[5]所示,在AndroidManifest中为目标Activity添加相应的action和category。 还需要解释显式和隐式Intent的区别。显式Intent直接指定目标组件,而隐式Intent通过action、data、category等匹配。setAction主要用于隐式Intent,触发系统或其他应用的功能。例如,ACTION_VIEW可以打开网页,ACTION_SEND用于分享内容。 用户可能遇到的问题包括如何正确使用setAction,为什么需要配置intent-filter,以及常见的系统内置Action有哪些。需要结合示例代码说明,比如启动拨号界面和自定义Activity跳转。同时,要注意说明setAction单独使用时必须与intent-filter中的action匹配,否则会无法找到目标组件,导致应用崩溃。 另外,引用[4]提到Intent是活动之间传递数据的载体,所以可能还要提到putExtra方法,但用户的问题集中在setAction,所以这部分可以简要带过。最后,常见问题解答部分需要解答用户可能遇到的典型问题,比如匹配失败或权限问题,帮助用户避免常见错误。</think>### Intent setAction 方法的功能和使用解析 #### 1. **核心作用** `Intent.setAction()` 用于定义**隐式 Intent 的操作类型**,通过字符串标识符(如 `android.intent.action.DIAL`)触发系统或应用预定义的功能[^3][^4]。例如: ```java // 调用系统拨号界面 Intent intent = new Intent(); intent.setAction(Intent.ACTION_DIAL); // android.intent.action.DIAL startActivity(intent); ``` #### 2. **与显式 Intent 的区别** - **显式 Intent**:直接指定目标组件类名(如 `new Intent(MainActivity.this, SecondActivity.class)`) - **隐式 Intent**:通过 `Action` + `Category` + `Data` 组合匹配目标组件,常用于跨应用交互[^5] #### 3. **使用流程(自定义 Action)** 1. **定义 Action 常量**: ```java public static final String CUSTOM_ACTION = "com.example.MY_CUSTOM_ACTION"; ``` 2. **配置目标 Activity**(AndroidManifest.xml): ```xml <activity android:name=".TargetActivity"> <intent-filter> <action android:name="com.example.MY_CUSTOM_ACTION"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> ``` 3. **触发跳转**: ```java Intent intent = new Intent(); intent.setAction(CUSTOM_ACTION); startActivity(intent); ``` #### 4. **常见系统内置 Action** | Action 常量 | 功能描述 | |-----------------------------|--------------------------| | `Intent.ACTION_VIEW` | 打开 URL/文件 | | `Intent.ACTION_SEND` | 分享内容 | | `Intent.ACTION_CALL` | 直接拨打电话(需权限) | #### 5. **注意事项** - **必须匹配 intent-filter**:未声明对应 `<action>` 的 Activity 无法响应 - **权限控制**:部分 Action(如 `ACTION_CALL`)需要声明权限 - **数据附加**:常配合 `setData()` 或 `putExtra()` 传递参数
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值