`
kurting615
  • 浏览: 94810 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Activity跳转传值

 
阅读更多
Activity跳转与传值,主要是通过Intent类来连接多个Activity,以及传递数据。
 

Intent是Android一个很重要的类。Intent直译是“意图”,比如你想从这个Activity跳转到另外一个Activity,这就是一个意图。

activity跳转可以选择无返回结果,也可以有。如下两个demo

 

无返回结果:

 

package com.ly;

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

public class BundleTestActivity extends Activity {
	EditText et1 ;
	EditText et2 ;
	Button bt;
	RadioButton rb;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        et1=(EditText) findViewById(R.id.et1);
        et2=(EditText) findViewById(R.id.et2);
        rb=(RadioButton) findViewById(R.id.radioButton1);
        bt=(Button) findViewById(R.id.btn);
        bt.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				String username =et1.getText().toString();
				String password=et2.getText().toString();
				String sex =rb.isChecked()?"男":"女";
				User u =new User(username,password,sex);
				Bundle b =new Bundle();
				b.putSerializable("user", u);
				Intent i =new Intent();
				i.setClass(BundleTestActivity.this, Show.class);
				i.putExtras(b);
				startActivity(i);
			}
		});
    }
}

activity

package com.ly;

import java.io.Serializable;

public class User implements Serializable {
private String  username;
public String getUsername() {
	return username;
}
public void setUsername(String username) {
	this.username = username;
}
public String getPassword() {
	return password;
}
public User(String username, String password, String sex) {
	super();
	this.username = username;
	this.password = password;
	this.sex = sex;
}
public void setPassword(String password) {
	this.password = password;
}
public String getSex() {
	return sex;
}
public void setSex(String sex) {
	this.sex = sex;
}
private String  password;
private String sex;
}
 

传递的实体(实现序列化)

package com.ly;

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

public class Show extends Activity {
private TextView tw;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.show);
		tw =(TextView) findViewById(R.id.tw);
		Intent i =getIntent();
		Bundle b =i.getExtras();
		User u = (User) b.getSerializable("user");
		tw.setText(u.getUsername()+u.getSex());
	}

}

 

获得数据

(布局配置省略)

 

返回结果的跳转:

需要重写onActivityResult方法

package com.ly;

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

	private Button btn;
	private EditText et;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		btn = (Button) findViewById(R.id.btn);
		et = (EditText) findViewById(R.id.et);
		btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent intent = new Intent(ActivitycallbackdataActivity.this,
						Result.class);
				startActivityForResult(intent, 0);
			}
		});
	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (requestCode == 0 && resultCode == 0) {
			Bundle datas = data.getExtras();
			String city = datas.getString("city");
			et.setText(city);
		}
	}
}

 跳转到的类

package com.ly;

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

public class Result extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Intent i = getIntent();
		Bundle b =new Bundle();
		b.putString("city", "广州");
		i.putExtras(b);
		this.setResult(0, i);
		this.finish();
	}

}

 ** 注意,在setResult后,要调用finish()销毁当前的Activity,否则无法返回到原来的Activity,就无法执行原来Activity的onActivityResult函数,看到当前的Activity没反应。

 

附:demo1布局


  • 大小: 21.9 KB
分享到:
评论

相关推荐

    界面跳转传值demo

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

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

    在Android系统的江湖中有四大组件:活动(Activity), 服务(Service), 广播接收器(Broadcast Reciver)和内容提供者(Content Provider)。...本篇博客要介绍的内容是活动的创建,活动的跳转与值的透传。 iOS中的V

    Activity页面跳转传值

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

    Intent跳转传值

    当我们需要从一个Activity跳转到另一个Activity时,Intent扮演着非常重要的角色。在这个过程中,我们可能需要将一些数据从源Activity传递到目标Activity。这就是所谓的"Intent跳转传值"。 Intent主要分为显式Intent...

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

    在Android应用开发中,Intent是连接应用程序组件的重要桥梁,它被用来启动新的Activity或Service,也可以传递数据。本文将深入探讨如何在两个Activity之间通过Intent进行数据传递。 首先,理解Intent的基本概念。...

    Android页面跳转传值

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

    Android Activity的跳转与传值详解

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

    Android Activity跳转和listview的使用

    理解Activity的跳转和ListView的使用是Android开发中至关重要的技能。在这个主题中,我们将深入探讨如何通过Intent和Bundle实现Activity间的参数传递和跳转,以及如何在ListView中设置Item的点击事件处理。 首先,...

    android页面跳转传值

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

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

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

    安卓登陆页面跳转传值小例子

    本文将详细讲解“安卓登录页面跳转传值小例子”中的知识点,帮助初学者掌握基本技巧。 首先,我们要了解的是Android Intent的概念。Intent在Android中扮演着消息传递的角色,它用于启动一个Activity或者Service,...

    android两个activity相互传值

    在实际的开发过程中,常常需要在两个Activity之间传递数据,比如从一个Activity启动另一个Activity并传递一些参数,然后在新的Activity中处理这些参数,甚至在完成后将结果返回给原来的Activity。本文将详细讲解如何...

    安卓界面跳转传值及返回父屏

    本篇文章将深入探讨如何在Android中实现从一个Activity(活动)跳转到另一个Activity,并在跳转过程中传递数据,以及如何设置返回逻辑以回到原来的父屏幕。我们将以一个名为"MyApplication"的示例项目为背景进行讲解...

    intent跳转传值

    当涉及到"Intent跳转传值"时,通常指的是在启动一个新的Activity时,将数据附着在Intent上并传递给新Activity。下面是一些常见的数据类型以及如何传递: 1. 基本数据类型:如int、String、boolean等,可以直接通过...

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

    本示例主要关注两个核心知识点:Fragment与Activity之间的数据传递,以及Fragment之间的跳转。 首先,我们来探讨Fragment与Activity之间的数据传递。在Android中,有多种方式实现两者间的数据交换: 1. **通过...

    Android Intent跳转和回传值

    Intent跳转传值,和Activity返回传值

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

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

    android界面跳转与传值

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

Global site tag (gtag.js) - Google Analytics