java向另一activity输入_Activity经典实例一:两个Activity传递数据和对象

1、概述:

Activity类直接或者间接地继承了Context、ContextWrapper、ContextThemeWrapper等基类,因此Activity可以直接调用它们的方法。

创建一个Activity需要实现某些方法,常见的是实现onCreate(Bundle status)方法,该方法将会在Activity创建时被回调,它调用setContentView(View view)方法来显示要展示的View。

一个Android应用常常有多个Activity,但是只有一个作为程序的入口,其他的Activity通常都由入口Activity、及其后者启动。

2、Activity启动另一个Activity的方法:

startActivity(Intent intent):启动其他Activity;

startActivityForResult(Intent intent, int requestCode):以指定请求码(requestCode)启动Activity,而且程序将会等到新启动Activity的结果(通过重写onActivityResult(...)方法来获取结果)。

3、关闭Activity的方法:

finish():结束掉当前的Activity;

finishActivity(int requestCode):结束以startActivityForResult()方法启动的Activity。

4、使用Bundle在Activity之间交换数据:

1)、Intent:主要通过Intent这个信使,将需要交换的数据放入即可。Intent提供了方法用于携带数据,如:

putExtras(Bundle data):向Intent中放入需要携带的数据;

2)、Bundle:就是一个简单的数据包,该Bundle对象包含了多个方法来存入、取出数据,有:

putXxx(String key, Xxx data):向Bundle放入Int、Long等各种类型的数据;

putSerializable(String key, Serializable data):向Bundle放入一个可序列化的对象;

getXxx(String key):从Bundle取出Int、Long等各种类型的数据;

getSerializable(String key):从Bundle取出一个可序列化的对象。

5、开发实例:注册用户信息

项目简介:程序包含两个Activity,一个给用户填写信息,另一个显示注册结果。

cf856f8e38f36be9051a37fd53da31aa.png

a0fb3e962d875b43861d47eab82d0d9f.png

完整代码:

RegisterActivity.java源代码:

package com.xsjayz.ac;

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;

import android.widget.Toast;

public class RegisterActivity extends Activity {

private Button regButton;

private EditText nameEdit;

private EditText passwdEdit;

private RadioButton maleButton;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

regButton = (Button) findViewById(R.id.register_now);

nameEdit = (EditText) findViewById(R.id.name_edit);

passwdEdit = (EditText) findViewById(R.id.password_edit);

maleButton = (RadioButton) findViewById(R.id.male_btn);

regButton.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

String name = nameEdit.getText().toString();

String passwd = passwdEdit.getText().toString();

String gender = maleButton.isChecked() ? "男" : "女";

// 如果输入信息不完整,则不允许注册。

if (name.equals("") || passwd.equals("")) {

Toast.makeText(RegisterActivity.this, "请填写完整的信息!", 3000)

.show();

} else {

// 创建Person对象,一个可序列化的对象。

Person person = new Person(name, passwd, gender);

Bundle bundle = new Bundle();

bundle.putSerializable("person", person);

Intent intent = new Intent(RegisterActivity.this,

ResultActivity.class);

intent.putExtras(bundle);

// 启动另一个Activity。

startActivity(intent);

}

}

});

}

}

ResultActivity.java源代码:

package com.xsjayz.ac;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.widget.TextView;

public class ResultActivity extends Activity {

private TextView nameText;

private TextView passwdText;

private TextView genderText;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.result);

nameText = (TextView) findViewById(R.id.name_text);

passwdText = (TextView) findViewById(R.id.passwd_text);

genderText = (TextView) findViewById(R.id.gender_text);

// 获取启动该ResultActivity的Intent

Intent intent = getIntent();

// 获取该Intent所携带的数据

Bundle bundle = intent.getExtras();

// 从bundle数据包中取出数据

Person person = (Person) bundle.getSerializable("person");

// 显示注册结果

nameText.setText("您的帐号:" + person.getName());

passwdText.setText("您的密码:" + person.getPasswd());

genderText.setText("您的性别:" + person.getGender());

}

}

main.xml布局文件:

android:layout_width="fill_parent"

android:layout_height="fill_parent" >

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/register_info_text"

android:textSize="20sp" />

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/user_name"

android:textSize="16sp" />

android:id="@+id/name_edit"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:hint="@string/set_name"

android:selectAllOnFocus="true" />

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/user_password"

android:textSize="16sp" />

android:id="@+id/password_edit"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:hint="@string/set_password"

android:password="true"

android:selectAllOnFocus="true" />

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/user_sex"

android:textSize="16sp" />

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal" >

android:id="@+id/male_btn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/male_btn"

android:checked="true"

android:textSize="16sp" />

android:id="@+id/female_btn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/female_btn"

android:textSize="16sp" />

android:id="@+id/register_now"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/register_btn"

android:textSize="16sp" />

result.xml布局文件:

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

android:id="@+id/name_text"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:textSize="18sp" />

android:id="@+id/passwd_text"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:textSize="18sp" />

android:id="@+id/gender_text"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:textSize="18sp" />

可序列化的对象Person:

package com.xsjayz.ac;

import java.io.Serializable;

public class Person implements Serializable {

private static final long serialVersionUID = 1L;

private String name;

private String passwd;

private String gender;

public Person(String name, String passwd, String gender) {

this.name = name;

this.passwd = passwd;

this.gender = gender;

}

public String getName() {

return name;

}

public String getPasswd() {

return passwd;

}

public String getGender() {

return gender;

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573025.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解JSON对象

深入理解JSON对象 前面的话 json(javascript object notation)全称是javascript对象表示法,它是一种数据交换的文本格式,而不是一种编程语言,用于读取结构化数据。2001年由Douglas Crockford提出,目的是取代繁琐笨重的XML格式。本…

java内存分配模型优点_高并发实战(二)-并发基础 缓存 MESI 内存模型

左图为高速缓存 右图为多级缓存数据的读取和存储都经过高速缓存,CPU核心与高速缓存有一条特殊的快速通道。主存与高速缓存都是连接在系统总线上,当然其他组件也是在此基础上进行通信的。在高速缓存出现后不久,系统变得愈加复杂,高…

CentOS 7 安装SVN服务端

CentOS7下安装SVN服务 1. yum命令即可方便的完成安装# sudo yum install subversion 测试安装是否成功:# svnserve --version 更改svn的默认配置(更改默认的指向目录和默认端口)# sudo vim /etc/sysconfig/svnserve编辑示例:OPTIONS"-r /data/svn -…

.NET简谈事务、分布式事务处理

在本人的 “ .NET简谈事务本质论”一文中我们从整体上了解了事务模型,在我们脑子里能有一个全局的事务处理结构,消除对数据库事务的依赖理解,重新认识事务编程模型。 今天这篇文章我们将使用.NET C#来进行事务性编程,从浅显、简单…

css compressor java_利用YUI Compressor压缩JS/CSS之终极秘籍

JS/CSS的压缩已经不是什么新鲜话题了,自打YSlow推出后,这方面的优化话题是铺天盖地啊;不过当时作为后知后觉的我,甚至都没法完整地写出一份漂亮的JS/CSS的代码,何尝会去注意呢?!时至今日&#x…

HTML 列表中的dl,dt,dd,ul,li,ol区别及应用

HTML 列表中的dl,dt,dd,ul,li,ol区别及应用 HTML 列表中的dl,dt,dd,ul,li,ol区别及应用 工具/原料 html&#xff0c;dw软件方法/步骤 1无序列表 无序列表是一个项目的列表&#xff0c;此列项目使用粗体圆点&#xff08;典型的小黑圆圈&#xff09;进行标记。 无序列表始于 <…

自然语言10_分类与标注

sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId1005269003&utm_campaigncommission&utm_sourcecp-400000000398149&utm_mediumshare http://www.tuicool.com/articles/feAfi2 NLTK读书笔记 — …

git中Please enter a commit message to explain why this merge is necessary.

Please enter a commit message to explain why this merge is necessary. 请输入提交消息来解释为什么这种合并是必要的 git 在pull或者合并分支的时候有时会遇到这个界面。可以不管(直接下面3,4步)&#xff0c;如果要输入解释的话就需要: 1.按键盘字母 i 进入insert模式 2.修…

abp框架mysql连接配置,abp框架连接数据库

ABP框架搭建项目系列教程基础版完结篇经过前面十二篇的基础教程&#xff0c;现在终于该做个总结了。回顾第一篇&#xff0c;我们建议新手朋友们先通过ABP官网的启动模板生成解决方案&#xff0c;因为这样既快速又准确&#xff0c;不会因为项目的搭建&#xff0c;而让新手畏而却…

【分布式】Zookeeper在大型分布式系统中的应用

一、前言 上一篇博文讲解了Zookeeper的典型应用场景&#xff0c;在大数据时代&#xff0c;各种分布式系统层出不穷&#xff0c;其中&#xff0c;有很多系统都直接或间接使用了Zookeeper&#xff0c;用来解决诸如配置管理、分布式通知/协调、集群管理和Master选举等一系列分布式…

Egret资源管理解决方案

关于egret开发H5页游&#xff0c;资源管理和加载的一点看法。 一 多json文件管理 二 资源归类和命名 三 exml文件编写规范 四 资源预加载、分步加载、偷载 五 资源文件group分组 六 ResUtils&#xff0c;多json文件管理类 七 ResUtils&#xff0c;资源组加载管理类 八 开发中遇…

java 等待唤醒机制,Java线程等待唤醒机制

记录面试过程中被问到的几个需要手写代码的小案例1.请手写出线程的等待唤醒机制案例中两个线程&#xff1a;SyncSetThread设置学生信息&#xff0c;SyncGetThread用来获取学生信息&#xff0c;在Student实体中提供一个标记属性flag&#xff0c;记录当前是否有数据。等待唤醒机制…

Xshell实现Windows上传文件到Linux主机

经常有这样的需求&#xff0c;我们在Windows下载的软件包&#xff0c;如何上传到远程Linux主机上&#xff1f;还有如何从Linux主机下载软件包到Windows下&#xff1b;之前我的做法现在看来好笨好繁琐&#xff0c;不过也达到了目的&#xff0c;笨人有本方法嘛&#xff1b; 我是怎…

织梦自适应php源码,DEDE织梦PHP源码响应式建筑设计类网站织梦模板(自适应手机端)...

模板名称&#xff1a;响应式建筑设计类网站织梦模板(自适应移动端) 利于SEO优化模板详情&#xff1a;织梦最新内核开发的模板&#xff0c;该模板属于企业通用、HTML5响应式、建筑设计类企业使用&#xff0c;一款适用性很强的模板&#xff0c;基本可以适合各行业的企业网站&…

mac本用WTG(Windows To Go)安装Win10到移动硬盘

准备工作&#xff1a; 一个空的 USB 3.0 移动硬盘&#xff08;在安装 WTG 时候会将这个硬盘清空重新并分区&#xff0c;注意备份好数据。USB 3.0 的优盘是不行的&#xff0c;即使安装成功&#xff0c;系统的运行速度会奇慢&#xff09; 原版Windows 10 安装镜像&#xff08;建议…

js初步简单的编程代码

简单图片切换编码demo图片地址自行替换 简单图片切换编码<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml" …

安卓文本编辑器php cpp,开源的Android富文本编辑器

RichEditor基于原生EditTextspan实现的Android富文本编辑器github地址&#xff1a;https://github.com/yuruiyin/RichEditor组件描述该组件是基于原生EditTextspan的方式实现的&#xff0c;旨在提供一个功能齐全且使用方便的Android富文本编辑器。主要支持了加粗斜体等行内样式…

python gif 透明,Python3+试点批量处理简单的GIF到PNG并透明地去除背景色,python3Pillow,gif,转成,png,透明化,去掉...

1. 安装Pillow, 只用这个应该也可以&#xff0c;2. 安装 cImage下载后解压&#xff0c;拷贝image.py到你python安装目录的 Lib\site-packages 中。from PIL import Imageimport osimport imagedef get_imlist(path):"""返回目录中所有gif图像的文件名列表图像的…

matlab求半衰期,如何使用GLD和GDX价差来估计均值回归的半衰期

计算均值回归时间序列的半衰期我们可以通过例中GLD和GDX的均值回归差价来计算均值回归半衰期。MATLAB代码可以从epchan. com/book/example? _ 5. m获得。(这个程序的第一部分与example7 2. m.相同。)%在此播入example7_2. m%Insert example7 2. m in the beginning hereprevzb…

框架错误汇总

1.struts标签&#xff0c;在body中输入代码发现值栈不存在&#xff0c; 即<s:debug></s:debug>没有起作用 1 <body>2 3 4 测试url标签<br>5 <s:url value"index.jsp" var"surl"></s:url><br>6 <s:url value&…