调用一个Activity并返回结果
一:在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并返回结果的更多相关文章
- 【Android】12.3 在当前Activity中获取另一个Activity的返回值
		分类:C#.Android.VS2015: 创建日期:2016-02-23 一.简介 在上一节的示例中,通过StartActivity(Intent)方法启动另一个Activity后,这两个Activ ... 
- Android中调用另一个Activity并返回结果-以模拟选择头像功能为例
		场景 Android中点击按钮启动另一个Activity以及Activity之间传值: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detail ... 
- startActivityForResult调用另外一个Activity获取返回结果
		startActivityForResult(intent,requestCode)可以调用另外一个Activity,并返回结果. 换头像案例 activity_main.xml <?xml v ... 
- android中按back键返回上一个activity,如何重新调用上一个activity的oncreate方法?
		默认情况下是不会调用的. @Override public void onBackPressed() { String titleStr = edittitle.getText().toString( ... 
- 调用另一个Activity
		<转>调用另一个Activity Intent对象的使用 范例说明 前一个范例介绍了如何运用切换Layout的方式,进行手机页面间的转换.如果要转换的页面并不单只是背景.颜色或文字内容的不 ... 
- 从一个Activity返回上一个Activity
		从一个Activity返回上一个Activity 要求:保留上一个Activity的数据 方法: 第一步:从Activity1转向Activity2时,用startActivityForResult而 ... 
- 启动另外一个activity,并返回结果
		欢迎大家光临我的小店:http://clkk.taobao.com 大致步骤: 1.启动另外一个Activity,这里称子Activity: 2.子Activity通过setResult方法设置返回结 ... 
- android 案例:从另一个activity选择信息并获取返回值
		主窗口: package com.example.test; import android.app.Activity; import android.app.AlertDialog; import a ... 
- Android_打开多个Activity,返回到第一个Activity
		正文 一.流程截图 二.问题说明 依次从登录到三级界面,然后退出回到登录界面. 三.解决办法 3.1 实现代码 三级界面调用如下代码: Intent intent = new Inte ... 
随机推荐
- HTML5 Canvas简简单单实现手机九宫格手势密码解锁
			原文:HTML5 Canvas简简单单实现手机九宫格手势密码解锁 早上花了一个半小时写了一个基于HTML Canvas的手势解锁,主要是为了好玩,可能以后会用到. 思路:根据配置计算出九个点的位置,存 ... 
- C语言利用va_list、va_start、va_end、va_arg宏定义可变參数的函数
			在定义可变參数的函数之前,先来理解一下函数參数的传递原理: 1.函数參数是以栈这样的数据结构来存取的,在函数參数列表中,从右至左依次入栈. 2.參数的内存存放格式:參数的内存地址存放在内存的堆栈段中, ... 
- Android超炫日期日历控件:TimesSquare
			先看效果图: 使用说明: 在布局文件里: <com.squareup.timessquare.CalendarPickerView android:id="@+id/calendar_ ... 
- .net下二进制序列化的格式分析[转]
			.net下二进制序列化的格式分析[转] -- 综合应用 (http://www.Host01.Com/article/Net/00020003/) --- .net下二进制序列化的格式分析 (http ... 
- 关于WIN32.EXE变态木马下载器的解决办法
			一.WIN32.EXE的来源:http://fdghewrtewrtyrew.biz/adv/130/win32.exe 二.运行后的表现:此WIN32.EXE通过80和8080端口访问若干个IP,若 ... 
- C#6.0 中的那些新特性
			C#6.0 中的那些新特性 前言 VS2015在自己机器上确实是装好了,费了老劲了,想来体验一下跨平台的快感,结果被微软狠狠的来了一棒子了,装好了还是没什么用,应该还需要装Xarmain插件,配置一些 ... 
- Qt Creator(编译器MinGW)中使用__attribute__(packed)的问题
			http://www.bttr-software.de/forum/mix_entry.php?id=11767 假设我们从串口中读到一串数据,当我们想要处理这串数据的时候通常是这样做的: 1 将这些 ... 
- leetcode N-QueensII
			题目和上一题一样,就是要求输出有多少种结果.最直接的就是,只要在上一题的代码return ans.size();就可以了.果然也是AC了. 然后我翻看了几种别人写的,暂时还没有找到复杂度可以比上一题降 ... 
- 再谈ORACLE CPROCD进程
			罗列一下有关oprocd的知识点 oprocd是oracle在rac中引入用来fencing io的 在unix系统下,假设我们没有採用oracle之外的第三方集群软件,才会存在oprocd进程 在l ... 
- 创业路(VC Pipeline),创业需要融资的阅读
			企业家们经常问我,您的投资渠道(投资流程)到底是怎么样的? 看看有多少项目,有多少人遇到,频度,终于选择哪些公司进行了投资. 这让我认为有必要提高VC投资通道的可见度.同一时候也有助于介绍到底哪些方面 ... 
