一:在main.xml文件中设置布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/background7" >

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/user" />

<EditText
        android:id="@+id/user"
        android:layout_width="207dp"
        android:layout_height="wrap_content"
        android:hint="" />

<TextView
       
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/password" />

<EditText
        android:id="@+id/pwd"
        android:layout_width="203dp"
        android:layout_height="wrap_content"
        android:inputType="textPassword" />

<TextView
       
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/repass" />

<EditText
        android:id="@+id/repwd"
        android:layout_width="203dp"
        android:layout_height="wrap_content"
        android:inputType="textPassword" />

<TextView
       
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/email" />

<EditText
        android:id="@+id/email"
        android:layout_width="202dp"
        android:layout_height="wrap_content"
        android:hint="" />

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button1"
        android:text="@string/title"
    />
</LinearLayout>

二:在主活动的Activity中进行信息的处理

package com.org.bundle_ac;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

@Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  
  Button button=(Button)findViewById(R.id.button1);//获取提交按钮
  button.setOnClickListener(new OnClickListener(){

@Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    String user=((EditText)findViewById(R.id.user)).getText().toString();//获取输入的用户名
    String pwd=((EditText)findViewById(R.id.pwd)).getText().toString();//获取输入的密码
    String repwd=((EditText)findViewById(R.id.repwd)).getText().toString();//获取输入的确认密码
    String email=((EditText)findViewById(R.id.email)).getText().toString();//获取输入的email地址
    
    if(!"".equals(user)&&!"".equals(pwd)&&!"".equals(email)){//进行判断
     if(!pwd.equals(repwd)){
      //如果两次输入的密码不一次给以提示消息并获得焦点
      Toast.makeText(MainActivity.this, "两次输入的密码不一致,请重新输入!", Toast.LENGTH_SHORT).show();
      ((EditText)findViewById(R.id.pwd)).setText("");//清空密码编辑框
      ((EditText)findViewById(R.id.repwd)).setText("");//清空确认密码编辑框
      ((EditText)findViewById(R.id.pwd)).requestFocus();//让密码编辑框获得焦点
     }else{
      //将输入的信息保存的到Bundle中,并开启一个新的Activity显示输入的用户注册信息
      Intent intent=new Intent(MainActivity.this,RegisterActivity.class);//
      Bundle bundle=new Bundle();//创建并实例化一个Bundle对象
      bundle.putCharSequence("user", user);//保存用户名
      bundle.putCharSequence("pwd", pwd);//保存密码
      bundle.putCharSequence("email", email);//保存email地址
      intent.putExtras(bundle);//将Bundle对象添加到Intent对象中
      startActivity(intent);//启新的Activity
     }
    }else{
     Toast.makeText(MainActivity.this, "请将注册信息输入完整!", Toast.LENGTH_SHORT).show();
    }
   }//
   
  });
 }

@Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }

}

三:在layout目录下创建名为register.xml的文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/background7">

<TextView
        android:id="@+id/textView1"
        android:layout_width="210dp"
        android:layout_height="30dp"
        android:text="@string/user" />

<TextView
        android:id="@+id/textView2"
        android:layout_width="210dp"
        android:layout_height="30dp"
        android:text="@string/password" />

<TextView
        android:id="@+id/textView3"
        android:layout_width="210dp"
        android:layout_height="30dp"
        android:text="@string/email" />

</LinearLayout>

四:创建一个RegisterActivity类,并进行信息的接收工作

package com.org.bundle_ac;

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

public class RegisterActivity extends Activity {

@Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.register);//设置该Activity要显示的内容视图
  
  Intent intent=getIntent();//获取Intent对象
  Bundle bundle=intent.getExtras();//获取传递的数据包
  TextView user=(TextView)findViewById(R.id.textView1);//获取到显示用户名的TextView组件
  user.setText("用户名:"+bundle.getString("user"));//获取输入的用户名并显示到TextView组件中
  TextView pwd=(TextView)findViewById(R.id.textView2);//获取到显示密码的TextView组件
  pwd.setText("密码:"+bundle.getString("pwd"));//获取输入的密码并显示到TextView组件中
  TextView email=(TextView)findViewById(R.id.textView3);//获取到显示email的TextView组件
  email.setText("E-mail:"+bundle.getString("email"));//获取输入的email并显示到TextView组件中
 }

}

五:在AndroidManifest.xml文件中加入配置Activity的信息

<activity
            android:name=".RegisterActivity"
            android:label="@string/title"
            android:icon="@drawable/p1"
            ></activity>

六:string的文件下的

字符串的配置

<?xml version="1.0" encoding="utf-8"?>
<resources>

<string name="app_name">Bundle_Ac</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="user">用户名:</string>
    <string name="password">密码:</string>
    <string name="repass">确认密码:</string>
    <string name="email">Email地址:</string>
    <string name="button1">提交</string>
    <string name="title">提交</string>
</resources>

最后加入背景图片:

只要改一下上面的代码就可以得到被调用的Activity的值

一;在MainActivity里面定义常量

private final int CODE=0x717;//定义一个请求的常量

二:startActivityForResult(intent,CODE);//启新的Activity

注意不在使用startActivity启动新的Activity了

三:在register.xml文件里面加入一个button的按钮组件

<Button
        android:id="@+id/back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/buttoncontent"
    />

四:为返回的按钮添加事件监听

Button button=(Button)findViewById(R.id.back);//获取到返回上一步的按钮
  button.setOnClickListener(new OnClickListener(){

@Override
   public void onClick(View arg0) {
    // TODO Auto-generated method stub
    setResult(0x717,intent);//设置返回的结果码,并返回调用该Activity的Activity
    finish();//关闭当前Activity
   }
   
  });

五:再次打开MainActivity,重写onActivityResult方法

@Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  // TODO Auto-generated method stub
  super.onActivityResult(requestCode, resultCode, data);
  if(requestCode==CODE&&resultCode==CODE){
   ((EditText)findViewById(R.id.pwd)).setText("");//清空密码编辑框
   ((EditText)findViewById(R.id.repwd)).setText("");//清空确认密码编辑框
  }
 }

这样就可以根据返回的结果常量来对进行相应的操作了

调用一个Activity并返回结果的更多相关文章

  1. 【Android】12.3 在当前Activity中获取另一个Activity的返回值

    分类:C#.Android.VS2015: 创建日期:2016-02-23 一.简介 在上一节的示例中,通过StartActivity(Intent)方法启动另一个Activity后,这两个Activ ...

  2. Android中调用另一个Activity并返回结果-以模拟选择头像功能为例

    场景 Android中点击按钮启动另一个Activity以及Activity之间传值: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detail ...

  3. startActivityForResult调用另外一个Activity获取返回结果

    startActivityForResult(intent,requestCode)可以调用另外一个Activity,并返回结果. 换头像案例 activity_main.xml <?xml v ...

  4. android中按back键返回上一个activity,如何重新调用上一个activity的oncreate方法?

    默认情况下是不会调用的. @Override public void onBackPressed() { String titleStr = edittitle.getText().toString( ...

  5. 调用另一个Activity

    <转>调用另一个Activity Intent对象的使用 范例说明 前一个范例介绍了如何运用切换Layout的方式,进行手机页面间的转换.如果要转换的页面并不单只是背景.颜色或文字内容的不 ...

  6. 从一个Activity返回上一个Activity

    从一个Activity返回上一个Activity 要求:保留上一个Activity的数据 方法: 第一步:从Activity1转向Activity2时,用startActivityForResult而 ...

  7. 启动另外一个activity,并返回结果

    欢迎大家光临我的小店:http://clkk.taobao.com 大致步骤: 1.启动另外一个Activity,这里称子Activity: 2.子Activity通过setResult方法设置返回结 ...

  8. android 案例:从另一个activity选择信息并获取返回值

    主窗口: package com.example.test; import android.app.Activity; import android.app.AlertDialog; import a ...

  9. Android_打开多个Activity,返回到第一个Activity

    正文 一.流程截图 二.问题说明 依次从登录到三级界面,然后退出回到登录界面. 三.解决办法 3.1 实现代码 三级界面调用如下代码:         Intent intent = new Inte ...

随机推荐

  1. HTML5 Canvas简简单单实现手机九宫格手势密码解锁

    原文:HTML5 Canvas简简单单实现手机九宫格手势密码解锁 早上花了一个半小时写了一个基于HTML Canvas的手势解锁,主要是为了好玩,可能以后会用到. 思路:根据配置计算出九个点的位置,存 ...

  2. C语言利用va_list、va_start、va_end、va_arg宏定义可变參数的函数

    在定义可变參数的函数之前,先来理解一下函数參数的传递原理: 1.函数參数是以栈这样的数据结构来存取的,在函数參数列表中,从右至左依次入栈. 2.參数的内存存放格式:參数的内存地址存放在内存的堆栈段中, ...

  3. Android超炫日期日历控件:TimesSquare

    先看效果图: 使用说明: 在布局文件里: <com.squareup.timessquare.CalendarPickerView android:id="@+id/calendar_ ...

  4. .net下二进制序列化的格式分析[转]

    .net下二进制序列化的格式分析[转] -- 综合应用 (http://www.Host01.Com/article/Net/00020003/) --- .net下二进制序列化的格式分析 (http ...

  5. 关于WIN32.EXE变态木马下载器的解决办法

    一.WIN32.EXE的来源:http://fdghewrtewrtyrew.biz/adv/130/win32.exe 二.运行后的表现:此WIN32.EXE通过80和8080端口访问若干个IP,若 ...

  6. C#6.0 中的那些新特性

    C#6.0 中的那些新特性 前言 VS2015在自己机器上确实是装好了,费了老劲了,想来体验一下跨平台的快感,结果被微软狠狠的来了一棒子了,装好了还是没什么用,应该还需要装Xarmain插件,配置一些 ...

  7. Qt Creator(编译器MinGW)中使用__attribute__(packed)的问题

    http://www.bttr-software.de/forum/mix_entry.php?id=11767 假设我们从串口中读到一串数据,当我们想要处理这串数据的时候通常是这样做的: 1 将这些 ...

  8. leetcode N-QueensII

    题目和上一题一样,就是要求输出有多少种结果.最直接的就是,只要在上一题的代码return ans.size();就可以了.果然也是AC了. 然后我翻看了几种别人写的,暂时还没有找到复杂度可以比上一题降 ...

  9. 再谈ORACLE CPROCD进程

    罗列一下有关oprocd的知识点 oprocd是oracle在rac中引入用来fencing io的 在unix系统下,假设我们没有採用oracle之外的第三方集群软件,才会存在oprocd进程 在l ...

  10. 创业路(VC Pipeline),创业需要融资的阅读

    企业家们经常问我,您的投资渠道(投资流程)到底是怎么样的? 看看有多少项目,有多少人遇到,频度,终于选择哪些公司进行了投资. 这让我认为有必要提高VC投资通道的可见度.同一时候也有助于介绍到底哪些方面 ...