您的位置首页生活百科

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

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

的有关信息介绍如下:

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

  Activity页面跳转实现有两种,一种是开始另一个Activity,另一种是通过setContentView来改变这个Activity显示的内容。本节通过用户注册界面来演示实现第一种跳转方式。

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

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

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

android:layout_width="wrap_content"

android:layout_height="wrap_content"

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

android:layout_width="fill_parent"

android:layout_height="fill_parent" >

android:layout_height="wrap_content"

android:gravity="center" >

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="用户名" />

android:id="@+id/userName"

android:layout_weight="1"

android:layout_height="wrap_content" />

android:layout_height="wrap_content"

android:gravity="center">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="密码" />

android:id="@+id/password"

android:layout_weight="1"

android:layout_height="wrap_content"

android:inputType="textPassword" />

android:layout_height="wrap_content"

android:gravity="center">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

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

android:id="@+id/repassword"

android:layout_weight="1"

android:layout_height="wrap_content"

android:inputType="textPassword" />

android:layout_height="wrap_content"

android:gravity="center" >

android:id="@+id/check"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

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

android:layout_height="wrap_content"

android:gravity="center" >

android:id="@+id/register"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="注 册" />

android:id="@+id/cancel"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="取 消" />

打开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();

}

});

}

}

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

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

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:layout_width="wrap_content"

android:layout_height="wrap_content"

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

android:layout_width="fill_parent"

android:layout_height="fill_parent" >

android:layout_height="wrap_content"

android:gravity="center" >

android:layout_width="wrap_content"

android:layout_height="wrap_content"

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

android:id="@+id/userName"

android:layout_weight="1"

android:layout_height="wrap_content" />

android:layout_height="wrap_content"

android:gravity="center">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="密码:" />

android:id="@+id/password"

android:layout_weight="1"

android:layout_height="wrap_content" />

>

android:layout_height="wrap_content"

android:gravity="center" >

android:layout_width="wrap_content"

android:layout_height="wrap_content"

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

android:id="@+id/check"

android:layout_weight="1"

android:layout_height="wrap_content" />

android:layout_height="wrap_content"

android:gravity="center" >

android:id="@+id/OK"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="确 认" />

创建第二个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();

}

});

}

}

注册ResultActivity。新建的Activity都需要注册,否则运行会出错,如下图所示。打开AndroidManifest.xml文件,添加代码, 进行简单注册就可以了。

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