Android三页面跳转代码

这篇博客详细介绍了如何在Android中实现三页面跳转,包括如何创建项目、编辑XML布局、设置页面停留时间、启动新Activity、隐藏状态栏和标题栏。还涉及到了页面元素如线性布局、文本框、输入框、单选按钮、多选按钮和按钮的使用,以及如何定义Java代码进行页面控制、事件监听和数据传递。最后,博主展示了如何接收和显示上一页面传递的数据。

首先打开安卓的ADT软件

创建一个项目(步骤如下图所示)

并取名为Day08(首字母要大写,遵循代码规范)

打开我们创建的Day08 找到res-layoutbing并打开activity_main.xml文件(如下图所示)

打开之后下方会出现两个小按钮(左边的按钮为我们的代码视图,右边的为我们的编辑视图代码的区域)

下面开始正式进行我们的代码编辑

一.

   1.在 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:background="@drawable/chonga"
    tools:context=".MainActivity" >

   

</LinearLayout>

<LinearLayout></LinearLayou>是线性布局,需要插入,在此代码中插入了一张图片

 插入图片代码:android:background="@drawable/引入照片的名字"(操作流程如下)

 在桌面上找到你需要插入的照片并把照片名改成英文(必须),在项目中找到res文件打开,找到第一个文件夹drawable-hdpi,讲照片直接拉进去点击OK

 2.找到与activity_main.xml文件对应的Java代码并对这个页面进行定义

代码如下:

2.1定义要求:在此界面停留三秒跳转到下一个界面

对onCreate方法进行重写

1.new一个Thread类

2.定义一个子线程,并在run方法里面将报红的

Thread.sleep(3000);转化成 try  catch形式

3. 开启新的activity页面

4.启动这个子线程 

package com.example.day08;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.support.v4.app.ShareCompat.IntentBuilder;
import android.view.Menu;
import android.view.WindowManager;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// 1.隐藏状态栏
		// getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
		// 2.隱藏标题栏
		getActionBar().hide();

		setContentView(R.layout.activity_main);
		// 1.定义一个子线程
		Thread t = new Thread(new Runnable() {
			public void run() {
				// 1.休眠3s
				try {
					Thread.sleep(3000);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				// 开启新的activity页面
				Intent it = new Intent(getApplicationContext(),
						LoginActivity.class);
				startActivity(it);
			}

		});
		// 2.启动这个子线程
		t.start();
	}
}

为了使视图更加美观可以使用这两个代码:

    隐藏状态栏
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
     隱藏标题栏
    getActionBar().hide();

二.

现在新建一个Android文件并对页面进行编辑

第二个页面为Android页面

1.通过 线性布局<LinearLayout></LinearLayou>,文本框<TextView>,输入框<EditText>,
        单选按钮<RadioGroup><RadioButton/>,多选按钮 <CheckBox/>,按钮<Button/>这些控件对页面进行展示

<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"
    tools:context=".MainActivity" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:gravity="center"
            android:text="用户注册" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp" >

        <TextView
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:gravity="center_vertical|right"
            android:text="账号" />

        <EditText
            android:id="@+id/et_username"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="3"
            android:background="@drawable/info"
            android:hint="请输入QQ号/手机号" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp" >

        <TextView
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:gravity="center_vertical|right"
            android:text="密码" />

        <EditText
            android:id="@+id/et_pwd"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="3"
            android:background="@drawable/info"
            android:hint="请输入密码" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp" >

        <TextView
            android:layout_width="0dp"
            android:layout_height="80dp"
            android:layout_weight="1"
            android:gravity="center_vertical|right"
            android:text="班级" />

        <Spinner
            android:id="@+id/sp_item"
            android:layout_width="0dp"
            android:layout_height="80dp"
            android:layout_weight="3" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp" >

        <TextView
            android:layout_width="0dp"
            android:layout_height="60dp"
            android:layout_weight="1"
            android:gravity="center_vertical|right"
            android:text="性别" />

        <RadioGroup
            android:layout_width="0dp"
            android:layout_height="60dp"
            android:layout_weight="3"
            android:orientation="horizontal" >

            <RadioButton
                android:id="@+id/rb_m"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:text="男" />

            <RadioButton
                android:id="@+id/rb_w"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:text="女" />
        </RadioGroup>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp" >

        <TextView
            android:layout_width="0dp"
            android:layout_height="60dp"
            android:layout_weight="1"
            android:gravity="center_vertical|right"
            android:text="爱好" />

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="60dp"
            android:layout_weight="3"
            android:orientation="horizontal" >

            <CheckBox
                android:id="@+id/cb_1"
                android:layout_width="65dp"
                android:layout_height="50dp"
                android:text="上网" />

            <CheckBox
                android:id="@+id/cb_2"
                android:layout_width="65dp"
                android:layout_height="50dp"
                android:text="聊天" />

            <CheckBox
                android:id="@+id/cb_3"
                android:layout_width="65dp"
                android:layout_height="50dp"
                android:text="睡觉" />

            <CheckBox
                android:id="@+id/cb_4"
                android:layout_width="65dp"
                android:layout_height="50dp"
                android:text="看书" />
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center" >

        <Button
            android:id="@+id/btn_commit"
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:background="@drawable/doib_ss"
            android:text="提交" />

        <Button
            android:id="@+id/btn_border"
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:background="@drawable/doib_ss"
            android:text="注册" />
    </LinearLayout>

</LinearLayout>

代码释意: 

宽高必须的代码 : android:layout_width=""        android:layout_height="" 

android:orientation="vertical"(在线性布局中默认为垂直排布)

android:gravity="center"(居中 可以对比加了与不加代码前后的效果)

android:gravity="center_vertical|right"(垂直居中靠右)

android:orientation="horizontal"(水平排列)

 android:id="@+id/et_username"(对按钮进行id命名,方便后面进行Java的定义id的控件)

布局 对页面的宽进行等分,使页面更加美观(高同理)

 <TextView  android:layout_width="0dp"
                    android:layout_weight="1"/>

<EditText   android:layout_width="0dp"
                  android:layout_weight="3"/>

 在drawable-hdpi文件中新建xml用来美化 边框线,边框颜色,背景颜色

 

 2.找到与activity_login.xml文件对应的Java代码并对这个页面进行定义

1.定义所有id的控件(先定义这些控件方便下面书写)



	// 1.定义所有id的控件
	private EditText etUsername, etPwd;
	private RadioButton rbM, rbW;
	private CheckBox cb1, cb2, cb3, cb4;
	private Button btnCommit, btnCancle;
	Spinner spinner;
	String[] str = null;

2.找到所有的控件(得创建一个init的类,不然会报错)

3.设置点击事件

 使用适配器来进行 页面和数据的绑定

在此代码中先用android.R.layout.simple_spinner_item Ctrl右键打开 粘贴<TextView/>里面的内容

ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                getApplicationContext(), android.R.layout.simple_spinner_item, str);

 再在layout文件里面新创建一个叫item的xml,并把刚才复制的内容粘贴引用一下并可以添加背景颜色和文本颜色

 将代码中的android.R.layout.simple_spinner_item替换成自己创建的R.layout.item

ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                getApplicationContext(), R.layout.item, str);

使用findViewById来转换

@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		getActionBar().hide();
		setContentView(R.layout.activity_login);

		// 2.找到所有的控件
		init();
		// 添加下拉列表内容
		str = new String[] { "移动215", "移动000", "222" };
		// 使用适配器来进行 页面和数据的绑定
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(
				getApplicationContext(), R.layout.item, str);
		spinner.setAdapter(adapter);

		// 3.设置点击事件
		btnCommit.setOnClickListener(this);
	}

	private void init() {
		etUsername = (EditText) findViewById(R.id.et_username);
		etPwd = (EditText) findViewById(R.id.et_pwd);
		rbM = (RadioButton) findViewById(R.id.rb_m);
		rbW = (RadioButton) findViewById(R.id.rb_w);
		cb1 = (CheckBox) findViewById(R.id.cb_1);
		cb2 = (CheckBox) findViewById(R.id.cb_2);
		cb3 = (CheckBox) findViewById(R.id.cb_3);
		cb4 = (CheckBox) findViewById(R.id.cb_4);
		btnCommit = (Button) findViewById(R.id.btn_commit);
		btnCancle = (Button) findViewById(R.id.btn_border);
		spinner = (Spinner) findViewById(R.id.sp_item);
	}

4.获取用户名输入框内容

5.获取密码输入框

6.获取性别输入框

 7.获取爱好多选内容

@Override
	public void onClick(View arg0) {
		// TODO Auto-generated method stub
		// 4.获取用户名输入框内容
		String userName = etUsername.getText().toString();
		// 5获取密码输入框
		String pwd = etPwd.getText().toString();
		// 6.获取性别输入框
		String sex = "";
		if (rbM.isChecked()) {
			sex = rbM.getText().toString();
		}
		if (rbW.isChecked()) {
			sex = rbW.getText().toString();
		}

		// 7.获取爱好多选内容
		String fav = "";
		if (cb1.isChecked()) {
			fav += cb1.getText().toString();
		}
		if (cb2.isChecked()) {
			fav += cb2.getText().toString();
		}
		if (cb3.isChecked()) {
			fav += cb3.getText().toString();
		}
		if (cb4.isChecked()) {
			fav += cb4.getText().toString();
		}

7.2 获取下来列表选中的内容

 8.传值跳转

 9.传递数据

// 7.2 获取下来列表选中的内容
		int i = spinner.getSelectedItemPosition();
		String spItem = str[i];
		// 吐司验证
		// Toast.makeText(getApplicationContext(), spItem, 1).show();

		// 8.传值跳转
		Intent it = new Intent(getApplicationContext(), SecondActivity.class);

		// 9.传递数据
		it.putExtra("a1", userName);
		it.putExtra("a2", pwd);
		it.putExtra("a3", sex);
		it.putExtra("a4", fav);
		it.putExtra("a5", spItem);
		startActivity(it);

代码总览

package com.example.day08;

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.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.Toast;

public class LoginActivity extends Activity implements OnClickListener {

	// 1.定义所有id的控件
	private EditText etUsername, etPwd;
	private RadioButton rbM, rbW;
	private CheckBox cb1, cb2, cb3, cb4;
	private Button btnCommit, btnCancle;
	Spinner spinner;
	String[] str = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		getActionBar().hide();
		setContentView(R.layout.activity_login);

		// 2.找到所有的控件
		init();
		// 添加下拉列表内容
		str = new String[] { "移动215", "移动000", "222" };
		// 使用适配器来进行 页面和数据的绑定
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(
				getApplicationContext(), R.layout.item, str);
		spinner.setAdapter(adapter);

		// 3.设置点击事件
		btnCommit.setOnClickListener(this);
	}

	private void init() {
		etUsername = (EditText) findViewById(R.id.et_username);
		etPwd = (EditText) findViewById(R.id.et_pwd);
		rbM = (RadioButton) findViewById(R.id.rb_m);
		rbW = (RadioButton) findViewById(R.id.rb_w);
		cb1 = (CheckBox) findViewById(R.id.cb_1);
		cb2 = (CheckBox) findViewById(R.id.cb_2);
		cb3 = (CheckBox) findViewById(R.id.cb_3);
		cb4 = (CheckBox) findViewById(R.id.cb_4);
		btnCommit = (Button) findViewById(R.id.btn_commit);
		btnCancle = (Button) findViewById(R.id.btn_border);
		spinner = (Spinner) findViewById(R.id.sp_item);
	}

	@Override
	public void onClick(View arg0) {
		// TODO Auto-generated method stub
		// 4.获取用户名输入框内容
		String userName = etUsername.getText().toString();
		// 5获取密码输入框
		String pwd = etPwd.getText().toString();
		// 6.获取性别输入框
		String sex = "";
		if (rbM.isChecked()) {
			sex = rbM.getText().toString();
		}
		if (rbW.isChecked()) {
			sex = rbW.getText().toString();
		}

		// 7.获取爱好多选内容
		String fav = "";
		if (cb1.isChecked()) {
			fav += cb1.getText().toString();
		}
		if (cb2.isChecked()) {
			fav += cb2.getText().toString();
		}
		if (cb3.isChecked()) {
			fav += cb3.getText().toString();
		}
		if (cb4.isChecked()) {
			fav += cb4.getText().toString();
		}
		// 7.2 获取下来列表选中的内容
		int i = spinner.getSelectedItemPosition();
		String spItem = str[i];
		// 吐司验证
		// Toast.makeText(getApplicationContext(), spItem, 1).show();

		// 8.传值跳转
		Intent it = new Intent(getApplicationContext(), SecondActivity.class);

		// 9.传递数据
		it.putExtra("a1", userName);
		it.putExtra("a2", pwd);
		it.putExtra("a3", sex);
		it.putExtra("a4", fav);
		it.putExtra("a5", spItem);
		startActivity(it);

	}
}

三.

再次在src里面新创建一个Activity文件,获取上一个页面传过来的数据并显示

1.在src里面新创建的Activity文件会同步到layout里面的activity_新建名.xml进行编辑

改成线性布局,并在<TextView/>里面定义一个控件

 2.新建的src中Java代码中进行编辑

1. 获取上一个页面传递过来的数据

@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		getActionBar().hide();
		setContentView(R.layout.activity_second);

		//1. 获取上一个页面传递过来的数据
		Intent it = getIntent();

		String userName = it.getStringExtra("a1");
		String pwd = it.getStringExtra("a2");
		String sex = it.getStringExtra("a3");
		String fav = it.getStringExtra("a4");
		String item = it.getStringExtra("a5");

		String str = userName + ":" + pwd + ":" + sex + ":" + fav+":"+item;

2. 显示这种数据(两种方法)

1:显示吐司

// 1:显示吐司
		Toast.makeText(getApplicationContext(), str, 1);

 2:文本框显示

// 2:文本框显示
		TextView tvShow = (TextView) findViewById(R.id.tv_show);
		tvShow.setText(str);

代码总览

package com.example.day08;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.widget.TextView;
import android.widget.Toast;

public class SecondActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		getActionBar().hide();
		setContentView(R.layout.activity_second);

		//1. 获取上一个页面传递过来的数据
		Intent it = getIntent();

		String userName = it.getStringExtra("a1");
		String pwd = it.getStringExtra("a2");
		String sex = it.getStringExtra("a3");
		String fav = it.getStringExtra("a4");
		String item = it.getStringExtra("a5");

		String str = userName + ":" + pwd + ":" + sex + ":" + fav+":"+item;
		//2. 显示这种数据
		// 1:显示土司
		Toast.makeText(getApplicationContext(), str, 1);
		// 2:文本框显示
		TextView tvShow = (TextView) findViewById(R.id.tv_show);
		tvShow.setText(str);
	}

}

三个页面跳转已完成,打开模拟机看看效果确认代码是否能运行!

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值