Android程序开发:[18]Activity页面跳转实现

2025-10-29 20:58:10

1、新建一个新的项目,名称为register。打开activity_main.xml编辑用户注册主界面,添加一个表格布局,包括TextView、EditText、CheckBox以及Button控件。完成代码如下:

////////////////////////////////////////////////////////////////////////////////

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical"

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context="com.example.register.MainActivity" >

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"祝亲季

        android:text="用户注册" /> 

    <TableLayout

    android:layout_width="fill_parent"

    android:layout_height="fill_parent" >

    <TableRow

     android:layout_height="wrap_content"

     android:gravity="center" >  

     <TextView

    android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:text="用户名" />   

     <EditText     

     android:id="@+id/userName"

     android:layout_weight="1"

     android:layout_height="wrap_content" />    

 </TableRow>   

  <TableRow

     android:layout_height="wrap_content"

     android:gravity="center">    

     <TextView

     android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:text="密码" />  

     <EditText    

     android:id="@+id/password"

     android:layout_weight="1"

     android:layout_height="常欠wrap_content"

     android:inputType="textPassword"  />

     </TableRow>   

   <TableRow

     android:layout_height="wrap_content"

 慎截    android:gravity="center">  

     <TextView

     android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:text="确认密码" /> 

     <EditText   

     android:id="@+id/repassword"

     android:layout_weight="1"

     android:layout_height="wrap_content"

     android:inputType="textPassword" />   

 </TableRow>  

   <TableRow

     android:layout_height="wrap_content"

     android:gravity="center" > 

     <CheckBox

     android:id="@+id/check"

     android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:text="同意条款" />     

 </TableRow>   

<TableRow

     android:layout_height="wrap_content"

     android:gravity="center" >  

     <Button

     android:id="@+id/register"

     android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:text="注     册" /> 

      <Button

     android:id="@+id/cancel"

     android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:text="取    消" />     

 </TableRow>   

</TableLayout>    

</LinearLayout>

2、打开MainActivity.java,获取注册界面控件,为CheckBox和Button控件添加事件监听。完整代码如下:

/////////////////////////////////////////////////////////////////////////////

package com.example.register;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.Intent;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.CheckBox;

import android.widget.CompoundButton;

import android.widget.EditText;

public class MainActivity extends Activity {

private boolean isChecked=false;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//设置标题

setTitle("注册");

//获取控件

final EditText username=(EditText) findViewById(R.id.userName);

final EditText password=(EditText) findViewById(R.id.password);

final EditText repassword=(EditText) findViewById(R.id.repassword);

CheckBox check=(CheckBox)findViewById(R.id.check);

Button register=(Button)findViewById(R.id.register);

Button cancel=(Button)findViewById(R.id.cancel);

//事件监听

check.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(CompoundButton arg0, boolean flag) {

// TODO Auto-generated method stub

isChecked=flag;

}

});

register.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

String strUser=username.getText().toString();

String strPwd=password.getText().toString();

String strRepwd=repassword.getText().toString();

if(strUser.equals("")){

//弹出对话框  验证是否填写用户名

new AlertDialog.Builder(MainActivity.this)

.setIcon(android.R.drawable.ic_dialog_alert)

.setTitle("警告")

.setMessage("请输入用户名")

.setPositiveButton("确定",null)

.show();

return;

}

if(!strPwd.equals(strRepwd)){

//弹出对话框  验证密码输入是否一致

new AlertDialog.Builder(MainActivity.this)

.setIcon(android.R.drawable.ic_dialog_alert)

.setTitle("警告")

.setMessage("两次密码输入不相同")

.setPositiveButton("确定",null)

.show();

return;

}

if(!isChecked){

//弹出对话框   验证是否同意条款

new AlertDialog.Builder(MainActivity.this)

.setIcon(android.R.drawable.ic_dialog_alert)

.setTitle("警告")

.setMessage("请勾选同意条款")

.setPositiveButton("确定",null)

.show();

return;

}

//发送数据到另一个Activity

Bundle bundle=new Bundle();

bundle.putString("username", strUser);

bundle.putString("password", strPwd);

bundle.putBoolean("check", isChecked);

Intent intent=new Intent(MainActivity.this,ResultActivity.class);

intent.putExtra("info",bundle);

//启动这个Activity

MainActivity.this.startActivity(intent);

//结束本Activity

MainActivity.this.finish();

}

});

cancel.setOnClickListener(new OnClickListener(){

public void onClick(View arg0){

MainActivity.this.finish();

}

});

}

}

3、新建注册成功反馈界面布局文件,名称为result.xml,用来显示用户注册信息。该布局与主界面类似,主要是TextView和Button控件。完整代码如下:

///////////////////////////////////////////////////////////////////////////////

<?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" >

     

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="用户注册结果" />

    

    <TableLayout

    android:layout_width="fill_parent"

    android:layout_height="fill_parent" >

    <TableRow

     android:layout_height="wrap_content"

     android:gravity="center" >

     

     <TextView

    android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:text="用户名:" />

     

     <TextView

         

     android:id="@+id/userName"

     android:layout_weight="1"

     android:layout_height="wrap_content" />

     

 </TableRow>   

  <TableRow

     android:layout_height="wrap_content"

     android:gravity="center">

     

     <TextView

     android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:text="密码:" />

     

     <TextView

         

     android:id="@+id/password"

     android:layout_weight="1"

     android:layout_height="wrap_content" />

     

     </TableRow>>

     

   

   <TableRow

     android:layout_height="wrap_content"

     android:gravity="center" >

     

      <TextView

     android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:text="同意条款:" />

     

     <TextView

         

     android:id="@+id/check"

     android:layout_weight="1"

     android:layout_height="wrap_content" />

       

 </TableRow>   

    

<TableRow

     android:layout_height="wrap_content"

     android:gravity="center" >

     

     <Button

     android:id="@+id/OK"

     android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:text="确    认" /> 

 </TableRow>   

</TableLayout>

</LinearLayout>

4、创建第二个Activity用来接收注册界面提交的数据,名称为ResultActivity。完整代码如下:

///////////////////////////////////////////////////////////////////////

package com.example.register;

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.CheckBox;

import android.widget.EditText;

import android.widget.TextView;

public class ResultActivity extends Activity {

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.result);

//设置标题

setTitle("注册成功!");

//接收数据

Intent intent=this.getIntent();

Bundle bundle=intent.getBundleExtra("info");

String strUsername=bundle.getString("username");

String strPwd=bundle.getString("password");

String strCheck=bundle.getBoolean("check")?"是":"否";

final TextView username=(TextView) findViewById(R.id.userName);

username.setText(strUsername);

final TextView password=(TextView) findViewById(R.id.password);

password.setText(strPwd);

final TextView strcheck=(TextView) findViewById(R.id.check);

strcheck.setText(strCheck);

Button OkBt=(Button) findViewById(R.id.OK);

OkBt.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

ResultActivity.this.finish();

}

});

}

}

5、注册ResultActivity。新建的Activity都需要注册,否则运行会出错,如下图所示。打开AndroidManifest.xml文件,添加<activity android:name=".ResultActivity"></activity>代码, 进行简单注册就可以了。

Android程序开发:[18]Activity页面跳转实现

Android程序开发:[18]Activity页面跳转实现

6、运行程序,在注册界面输入信息,点击确定后,运行结果如下图所示。

Android程序开发:[18]Activity页面跳转实现

Android程序开发:[18]Activity页面跳转实现

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢