zoukankan      html  css  js  c++  java
  • 使用Bundle在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>

    最后加入背景图片:

  • 相关阅读:
    Spring 依赖注入控制反转实现,及编码解析(自制容器)
    Bean的作用域及生命周期
    spring三种实例化bean的方式
    编码剖析Spring管理bean的原理
    Spring基本概念
    hibernate 一对一关联关系 及其懒加载,总结
    hibernate中 inverse的用法(转载)
    SpringMVC_RESTRUL_CRUD
    java 位移运算符
    三目运算中的类型转换
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3202941.html
Copyright © 2011-2022 走看看