`
DanielHan
  • 浏览: 57153 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
074641d7-eb86-343f-a745-65a0f693edb5
设计模式
浏览量:7364
社区版块
存档分类
最新评论

Intent用法

 
阅读更多
用法一:跳转后的activity不需要回传参数
send.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <Button 
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="跳转到另一个Activity"/>
</LinearLayout>



receive.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
   <TextView 
       android:id="@+id/txt"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"/>
</LinearLayout>


Send.java
package com.example.intentdemo;

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 Send extends Activity {

	private Button btn=null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.send);
		btn=(Button)findViewById(R.id.btn);
		
		btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent intent=new Intent(Send.this, Receive.class);
				intent.putExtra("param", "你好!");
				startActivity(intent);
			}
		});
	}
}


Receive.java
package com.example.intentdemo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class Receive extends Activity {

	private TextView txt=null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.receive);

		txt=(TextView)findViewById(R.id.txt);
		Intent intent=getIntent();
		txt.setText(intent.getStringExtra("param"));
	}
}


用法二:跳转后的activity需要回传参数



send.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    >
     <TextView 
       android:id="@+id/txt"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"/>
    <Button 
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="跳转到Receive1"/>
    <Button 
        android:id="@+id/btn2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="跳转到Receive2"/>
</LinearLayout>


receive.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    >
   <TextView 
       android:id="@+id/txt"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"/>
   <Button 
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="回到第一个Activity"/>
</LinearLayout>


Send.java
package com.example.intentdemo;

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;
import android.widget.TextView;

public class Send extends Activity {

	private Button btn1=null;
	private Button btn2=null;
	private TextView txt=null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.send);
		btn1=(Button)findViewById(R.id.btn1);
		btn2=(Button)findViewById(R.id.btn2);
		txt=(TextView)findViewById(R.id.txt);
		
		btn1.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent intent=new Intent(Send.this, Receive1.class);
				intent.putExtra("param", "这是Receive1");
				startActivityForResult(intent, 1);
			}
		});
		
		btn2.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent intent=new Intent(Send.this, Receive2.class);
				intent.putExtra("param", "这是Receive2");
				startActivityForResult(intent, 2);
			}
		});
		
		
	}
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if(resultCode==RESULT_OK){
			switch(requestCode){
				case 1:
					txt.setText("从Receive1返回数据"+data.getStringExtra("ret"));
					break;
				case 2:
					txt.setText("从Receive2返回数据"+data.getStringExtra("ret"));
					break;
				default:
					break;
			}
				
		}
	}
}


Receive1.java
package com.example.intentdemo;

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;
import android.widget.TextView;

public class Receive1 extends Activity {

	private TextView txt=null;
	private Button btn=null;
	private Intent intent=null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.receive);

		txt=(TextView)findViewById(R.id.txt);
		btn=(Button)findViewById(R.id.btn);
		
		intent=getIntent();
		txt.setText(intent.getStringExtra("param"));
		
		btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				intent.putExtra("ret", "1");
				setResult(RESULT_OK, intent);
				finish();
			}
		});
	}
}


Receive2.java
package com.example.intentdemo;

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;
import android.widget.TextView;

public class Receive2 extends Activity {

	private TextView txt=null;
	private Button btn=null;
	private Intent intent=null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.receive);

		txt=(TextView)findViewById(R.id.txt);
		btn=(Button)findViewById(R.id.btn);
		
		intent=getIntent();
		txt.setText(intent.getStringExtra("param"));
		
		btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				intent.putExtra("ret", "2");
				setResult(RESULT_OK, intent);
				finish();
			}
		});
	}
}

用法二的结果:






  • 大小: 13.8 KB
  • 大小: 8.2 KB
  • 大小: 6.8 KB
  • 大小: 10.1 KB
分享到:
评论

相关推荐

    Android Intent用法大全

    ### Android Intent用法大全 #### 概述 在Android开发中,`Intent`是一个非常重要的概念,它主要用于组件之间的通信,比如启动一个Activity、服务、广播接收器等。本篇文章将详细介绍Intent的各种常见用法,包括但...

    Intent的多种用法

    你可以通过putExtra()方法添加键值对,然后在接收端使用getExtra()系列方法取出数据。例如: ```java // 发送端 Intent intent = new Intent(); intent.putExtra("key", "value"); startActivity(intent); // 接收...

    Android-Intent使用方法详解

    Android-Intent使用方法详解 配合(http://blog.csdn.net/daiyibo123/article/details/51227160)博客查看。使用Android stdio编写。

    android Intent用法

    ### Android Intent 使用详解 在Android开发中,`Intent`是一个非常重要的类,它主要用于应用程序组件间的交互和通信。...理解并熟练掌握Intent的使用方法对于提高应用程序的功能性和用户体验至关重要。

    Android Intent 用法汇总.doc

    以下是关于Android Intent的详细说明和用法汇总: 1. **显示网页**: 使用`Intent.ACTION_VIEW`和`Uri.parse()`可以打开浏览器显示指定的网页。例如,`Uri uri = Uri.parse("http://google.com");`创建了一个指向...

    Intent用法举例

    本文将深入讲解Intent在广播和服务中的使用方法,以实例的形式帮助开发者更好地理解Intent的用法。 一、Intent的基本概念 Intent在Android中扮演着消息传递者的角色,它封装了操作类型和数据,并在组件之间传递。...

    Android组件之间交互核心Intent用法分析

    本文实例讲述了Android组件之间交互核心Intent用法。分享给大家供大家参考,具体如下: 从一个Activity启动到另一个Activity可以使用startActivity()方法或者是startActivityForResult()方法 第一种:直接启动一个...

    Android开发中Intent用法总结

    3. **Intent的使用方法** - **显式Intent**:当确切知道要启动哪个组件时,可以使用Component属性显式指定组件的类名。 - **隐式Intent**:如果只知操作而不关心具体由哪个组件处理,可以设置Action、Category、...

    android Intent的用法

    - 使用putExtra()方法添加键值对:`intent.putExtra("key", "value");` - 获取数据:在目标组件中使用`getExtras()`或`getStringExtra("key")`等方法获取。 4. 使用Intent创建意图过滤器(Intent Filter): - ...

    Android程序间Intent跳转分析

    IntentAnalyser这个源码可能包含了对上述Intent用法的解析和展示逻辑。通过分析IntentAnalyser,开发者可以学习如何捕获和解析Intent,从而更好地理解App的运行流程和与其他App的交互方式。这有助于优化用户体验,...

    android Intent指南

    以下是对Intent用法的详细说明: 1. 显示网页: 使用ACTION_VIEW和Uri解析器可以打开一个网页。例如,`Uri uri = Uri.parse("http://www.google.com"); Intent it = new Intent(Intent.ACTION_VIEW, uri); start...

    androidIntent使用技巧.pdf

    以上仅展示了部分常见的Intent用法,实际上Intent的功能远不止这些,比如启动其他应用的特定Activity、启动服务、发送广播等。在实际开发中,我们还需要根据具体需求,合理利用Intent的其他特性,如添加Flags(如`...

    robotium intent 各种用法

    以下是从“robotium intent 各种用法”这一主题中提取并详细解释的21种常见的`Intent`使用场景: ### 1. 从Google搜索内容 通过调用`Intent.ACTION_WEB_SEARCH`,可以启动系统默认的搜索引擎,搜索指定的关键词。...

    android常用Intent

    以下是对给定文件中提及的常见Intent用法的详细解析: ### 1. 播放音频文件 #### 示例代码: ```java Intent it = new Intent(Intent.ACTION_VIEW); Uri uri = Uri.parse("file:///sdcard/song.mp3"); it....

    Android Intent Filter用法

    在本教程中,我们将深入探讨Intent Filter的使用方法。 首先,Intent Filter的配置主要在AndroidManifest.xml文件中进行。通过在、、或标签内添加&lt;intent-filter&gt;子标签,我们可以为每个组件定义其能够接收的Intent...

    intent的常用方法

    ### Intent的常用方法 在Android开发中,`Intent`是一个非常重要的类,它主要用于应用程序组件间的通信。通过`Intent`可以启动新的...理解`Intent`的基本概念和使用方法对于成为一名合格的Android开发者至关重要。

    Android的Intent实验

    使用`sendBroadcast(Intent)`、`sendOrderedBroadcast(Intent, String)`或`sendBroadcastAsUser(Intent, UserHandle, String)`方法发送广播。注册广播接收器有两种方式:在AndroidManifest.xml中静态注册或在代码中...

    Android Intent的几种用法全面总结

    以上是Intent的基本用法,但Intent还有更多高级用法,如隐式Intent(用于启动未明确指定组件的Activity或Service)、显式Intent(指定确切的组件)、捆绑数据、使用Intent Filter等。理解并熟练使用Intent是构建...

Global site tag (gtag.js) - Google Analytics