您的位置:首页 > 其它

使用Bundle在Activity之间交换数据

2013-07-19 18:00 399 查看
一:在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>

 

最后加入背景图片:





 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: