`
iaiai
  • 浏览: 2197927 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android Activity之间跳转相互传值

阅读更多
Intent用法实例:

1.无参数Activity跳转
Intent it = new Intent(Activity.Main.this, Activity2.class);
startActivity(it);


2.向下一个Activity传递数据(使用Bundle和Intent.putExtras)
Intent it = new Intent(Activity.Main.this, Activity2.class);
Bundle bundle=new Bundle();
bundle.putString("name", "This is from MainActivity!");
it.putExtras(bundle); // it.putExtra(“test”, "shuju”);
startActivityForResult(intent, 0);

对于数据的获取可以采用:
Bundle bundle = getIntent().getExtras();
String name = bundle.getString("name");



AndroidManifest.xml配置文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
	package="iaiai.test" android:versionCode="1" android:versionName="1.0">
	<uses-sdk android:minSdkVersion="8" />

	<application android:icon="@drawable/icon" android:label="@string/app_name">
		<activity android:name=".MyList" android:label="@string/contact_title">
			<intent-filter>
				<action android:name="android.intent.action.MAIN" />
				<category android:name="android.intent.category.LAUNCHER" />
			</intent-filter>
		</activity>
		<activity android:name=".TestWidget" android:label="@string/contact_title"></activity>
	</application>
	<uses-permission android:name="android.permission.READ_CONTACTS" />
	<!-- 在SD卡中创建文件与删除文件权限 -->
	<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
	<!-- 往SD卡中写入数据权限 -->
	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>

*此文件要注意一个地方就是写的所有Activity类必须要在此配置文件中配置activity,如果不配置则跳转会报错。

main.xml布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<EditText android:id="@+id/et" android:layout_width="fill_parent"
		android:layout_height="wrap_content" />
	<Button android:id="@+id/bt" android:layout_width="fill_parent"
		android:layout_height="wrap_content" android:text="@string/btn_next"></Button>
</LinearLayout>

list_items.xml布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="wrap_content" android:id="@+id/myListItem">
	<EditText android:id="@+id/et1" android:layout_width="fill_parent"
		android:layout_height="wrap_content" />
	<Button android:id="@+id/bt1" android:layout_width="fill_parent"
		android:layout_height="wrap_content" android:text="@string/btn_return"></Button>
</LinearLayout>

values/strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, TestListView!</string>
    <string name="app_name">TestListView</string>
    
    <string name="contact_title">Contact</string>
    
    <string name="btn_next">Next</string>
    <string name="btn_return">Prev</string>
</resources>

values-zh-rCN/strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, TestListView!</string>
    <string name="app_name">TestListView</string>
    
    <string name="contact_title">联系人</string>
    
    <string name="btn_next">下一步</string>
     <string name="btn_return">返回</string>
</resources>

MyList.java类:
package iaiai.test;

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.EditText;

public class MyList extends Activity {

	private EditText editView;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		editView = (EditText) findViewById(R.id.et);

		Button bt = (Button) findViewById(R.id.bt);
		bt.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent intent = new Intent(MyList.this, TestWidget.class);

				Bundle bundle = new Bundle();
				bundle.putString("text", editView.getText().toString());
				intent.putExtras(bundle);

				startActivityForResult(intent, 0);
				// finish(); //这句意思是关闭当前Activity,也就是说点返回键返回不到这个Activity了.
			}
		});
	}

	/**
	 * 取到回传的值
	 */
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		switch (resultCode) { // resultCode为回传的标记,我在B中回传的是RESULT_OK
		case RESULT_OK:
			Bundle b = data.getExtras(); // data为B中回传的Intent
			editView.setText(b.getString("text"));// 回传的值
			break;
		default:
			break;
		}
	}

}

TestWidget.java类:
package iaiai.test;

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.EditText;

public class TestWidget extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.list_items);

		Bundle bundle = getIntent().getExtras();

		final EditText editView = (EditText) findViewById(R.id.et1);
		editView.setText(bundle.getString("text"));

		Button bt = (Button) findViewById(R.id.bt1);
		bt.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent intent = new Intent(TestWidget.this, MyList.class);
				
				Bundle bundle = new Bundle();
				bundle.putString("text", editView.getText().toString());
				intent.putExtras(bundle);
				
				setResult(RESULT_OK, intent);
				finish(); // 这句意思是关闭当前Activity,也就是说点返回键返回不到这个Activity了.
			}
		});
	}

}

以下是运行结果:


  • 大小: 17.1 KB
  • 大小: 16 KB
  • 大小: 18.1 KB
分享到:
评论
1 楼 Iam42 2013-09-05  
赞一个~~~

相关推荐

    Android Activity的跳转与传值详解

    Activity跳转与传值,主要是通过Intent类来连接多个Activity,以及传递数据。  Intent是Android一个很重要的类。Intent直译是“意图”,什么是意图呢?比如你想从这个Activity跳转到另外一个Activity,这就是一个...

    Android Activity跳转和listview的使用

    在Activity之间跳转时,我们通常创建一个Intent对象,并用它来指定要启动的目标Activity。例如: ```java Intent intent = new Intent(currentActivity, TargetActivity.class); startActivity(intent); ``` 如果...

    android两个activity相互传值

    在Android应用开发中,Activity是构成应用程序的基本组件,它代表用户界面的一个屏幕。当用户在应用中进行操作时,可能会在不同的Activity之间切换。在实际的开发过程中,常常需要在两个Activity之间传递数据,比如...

    android界面跳转与传值

    android界面跳转与传值 android中Activity的跳转和值通过SharedPreferences传递。

    fragment activity与fragment相互传值 fragment与fragment跳转

    总之,理解并熟练掌握Fragment与Activity之间以及Fragment之间的数据传递和跳转是Android开发中的重要技能。这不仅可以帮助构建灵活的用户界面,还能提高代码的可复用性和可维护性。在实际项目中,应根据具体场景...

    Android开发 两个Activity之间通过Intent跳转传值

    本文将深入探讨如何在两个Activity之间通过Intent进行数据传递。 首先,理解Intent的基本概念。Intent是一个意图对象,它表达了应用程序想要执行的动作(如打开一个网页、拨打电话)以及可能涉及到的数据。在...

    Android开发中Activity创建跳转及传值的方法

    在Android系统的江湖中有四大组件:活动(Activity), 服务(Service), 广播接收器(Broadcast Reciver)和内容提供者(Content Provider)。 今天所介绍的就是Android开发中的四大组件之一:Activity,其他那三大...

    TabActivity之间跳转、传值

    尽管如此,理解`TabActivity`之间的跳转和数据传递仍然是学习Android历史和理解现有代码库的重要部分。 1. **`TabHost`与`TabWidget`**:`TabActivity`的核心是`TabHost`和`TabWidget`。`TabHost`是一个容器,负责...

    Android页面跳转传值

    本篇文章将详细解析Android页面跳转和传值的过程,以及如何有效地利用`Intent`。 一、页面跳转 在Android中,页面跳转主要通过`Intent`对象实现。`Intent`是用来表示应用中一个操作的意图,它可以用于启动一个新的...

    Android-SmartGo通过编译时注解生成文件简化Activity跳转时传值及取值

    "Android-SmartGo"项目正是这样一个实践,它通过编译时注解生成文件,实现了在Activity跳转时自动处理传值和取值,极大地提高了开发效率和代码可读性。 SmartGo的核心思想是利用Java的注解(Annotation)和APT...

    Activity页面跳转传值

    在Android的开发过程中,有时需要进行Activity之间的跳转,在页面跳转的过程中,有时需要传递指定的参数数据过去,例如:信息发布app返回查询条件的需要,为此,就需要了解这方面的技术与实现方式。

    android画面跳转及传值实例代码

    在Android开发中,Activity之间的跳转以及数据的传递是构建应用程序逻辑的关键部分。以下将详细解析一个具体的示例代码,展示如何实现从`Wh4Activity`跳转至`Activity1`和`Activity2`,并在此过程中进行数据的传递。...

    android页面跳转传值

    本篇将深入探讨"android页面跳转传值"这个主题,重点关注Intent的使用以及如何通过Bundle来传递数据。 1. **Intent的基本概念** Intent是Android中的一个类,它表示应用程序想要完成的一个动作(如打开网页、发送...

    android基础 - 页面传值

    "页面传值"这一概念涉及如何在不同的Activity、Fragment或者Intent之间共享数据。以下是对这个主题的详细解析。 **1. Intent的使用** Intent是Android系统中用于启动另一个Activity或Service的主要手段,同时也用于...

    界面跳转传值demo

    例如,如果我们想从当前Activity跳转到名为`TargetActivity`的Activity,代码如下: ```java Intent intent = new Intent(this, TargetActivity.class); startActivity(intent); ``` 这里的`this`代表当前...

    android 跳转与传值

    在Android应用开发中,页面间的跳转和数据传递是至关重要的功能。在Android 1.6版本中,主要依赖Intent和Bundle这两个核心组件来实现这一目标。Intent是Android中的一个消息对象,它用来表达应用程序想要执行的动作...

    Kotlin实现页面互相跳转和互相传值源代码

    在Android应用开发中,页面之间的跳转和数据传递是至关重要的功能。Kotlin作为一种现代、类型安全且极其适合Android开发的编程语言,提供了简洁而高效的方式来处理这些任务。本篇文章将深入探讨如何使用Kotlin在...

    Kotlin 实现页面互相跳转和互相传值

    要从一个Activity跳转到另一个Activity,我们需要使用`Intent`对象。以下是如何创建并启动新Activity的步骤: 1. 创建Intent对象: ```kotlin val intent = Intent(this, TargetActivity::class.java) ``` 这里的`...

Global site tag (gtag.js) - Google Analytics