首先打开安卓的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);
}
}
三个页面跳转已完成,打开模拟机看看效果确认代码是否能运行!
这篇博客详细介绍了如何在Android中实现三页面跳转,包括如何创建项目、编辑XML布局、设置页面停留时间、启动新Activity、隐藏状态栏和标题栏。还涉及到了页面元素如线性布局、文本框、输入框、单选按钮、多选按钮和按钮的使用,以及如何定义Java代码进行页面控制、事件监听和数据传递。最后,博主展示了如何接收和显示上一页面传递的数据。
2392

被折叠的 条评论
为什么被折叠?



