继上个教程“Android实现页面停留”,本教程我们在跳转后的SecondActivity里面实现注册页面,并将获取到的数据传递给下个页面,并进行展示
activity_second.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"
tools:context=".SecondActivity" >
<TextView
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="#37403f"
android:gravity="center"
android:text="用户注册"
android:textColor="#fff"
android:textSize="20sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="65dp" >
<TextView
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:gravity="center_vertical|right"
android:text="账号:"
android:textSize="20sp" />
<EditText
android:id="@+id/et_id"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="4"
android:background="@drawable/et_border" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="65dp" >
<TextView
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:gravity="center_vertical|right"
android:text="密码:"
android:textSize="20sp" />
<EditText
android:id="@+id/et_pw"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="4"
android:background="@drawable/et_border" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="65dp" >
<TextView
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:gravity="center_vertical|right"
android:text="班级:"
android:textSize="20sp" />
<!--下拉列表-->
<Spinner
android:id="@+id/sp_classes"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="4" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="65dp" >
<TextView
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:gravity="center_vertical|right"
android:text="性别"
android:textSize="20sp" />
<RadioGroup
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="4"
android:orientation="horizontal"
>
<RadioButton
android:id="@+id/rb_m"
android:layout_width="60dp"
android:layout_height="match_parent"
android:text="男"
/>
<RadioButton
android:id="@+id/rb_w"
android:layout_width="60dp"
android:layout_height="match_parent"
android:text="女"
/>
</RadioGroup>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="65dp" >
<TextView
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:gravity="center_vertical|right"
android:text="爱好:"
android:textSize="20sp" />
<CheckBox
android:id="@+id/cb_net"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:text="上网"
/>
<CheckBox
android:id="@+id/cb_talk"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:text="聊天"
/>
<CheckBox
android:id="@+id/cb_sleep"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:text="睡觉"
/>
<CheckBox
android:id="@+id/cb_book"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:text="看书"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="65dp"
android:gravity="center">
<Button
android:id="@+id/btn_yes"
android:layout_width="120dp"
android:layout_height="60dp"
android:text="确定"
/>
<Button
android:id="@+id/btn_no"
android:layout_width="120dp"
android:layout_height="60dp"
android:text="取消"
/>
</LinearLayout>
</LinearLayout>
效果图如下:
在res/layout文件夹下面新建一个Android XML File,后面要用
找到TextView起个名字simple_item
新建ThirdActivity用来接收数据并显示
SecondActivity.java代码如下:
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 SecondActivity extends Activity implements OnClickListener {
// 定义所需要的控件
private String[] classes;
private EditText etId, etPw;
private Spinner spClasses;
private RadioButton rbM, rbW;
private CheckBox cbNet, cbTalk, cbSleep, cbBook;
private Button btnYes, btnNo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 去掉标题栏
getActionBar().hide();
setContentView(R.layout.activity_second);
// 使用init()方法
init();
// 声明数据源
classes = new String[] { "移动215", "移动214", "移动213", "移动212" };
// 使用数组适配器
// 初始化适配器
// 这里我们就要用到上面所新建的Android XML File “R.layout.simple_item”
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
getApplicationContext(), R.layout.simple_item, classes);
// 绑定适配器
spClasses.setAdapter(adapter);
// 按钮建立点击事件
btnYes.setOnClickListener(this);
}
// 定义一个方法用来找到所有的控件id
private void init() {
etId = (EditText) findViewById(R.id.et_id);
etPw = (EditText) findViewById(R.id.et_pw);
spClasses = (Spinner) findViewById(R.id.sp_classes);
rbM = (RadioButton) findViewById(R.id.rb_m);
rbW = (RadioButton) findViewById(R.id.rb_w);
cbNet = (CheckBox) findViewById(R.id.cb_net);
cbTalk = (CheckBox) findViewById(R.id.cb_talk);
cbSleep = (CheckBox) findViewById(R.id.cb_sleep);
cbBook = (CheckBox) findViewById(R.id.cb_book);
btnYes = (Button) findViewById(R.id.btn_yes);
btnNo = (Button) findViewById(R.id.btn_no);
}
@Override
public void onClick(View arg0) {
// 获取性别数据
// 定义一个String类型的sex,用来接收sex值
String sex = "";
if (rbM.isChecked()) {
// 如果rbM被选中,sex值为rbM的文本内容
sex = rbM.getText().toString();
}
if (rbW.isChecked()) {
// 如果rbW被选中,sex值为rbW的文本内容
sex = rbW.getText().toString();
}
// 定义一个String类型的userName ,用来接收userName 值
String userName = etId.getText().toString();
// 定义一个String类型的pwd,用来接收pwd值
String pwd = etPw.getText().toString();
// 定义一个String类型的fav,用来接收fav值
String fav = "";
if (cbNet.isChecked()) {
// 如果cbNet被选中,fav值为cbNet的文本内容
// 因为fav的值是多选内容,所以为了确保点击多个按钮的同时数据同时存在,要用+=
fav += cbNet.getText().toString();
}
if (cbTalk.isChecked()) {
// 如果cbTalk被选中,fav值为cbTalk的文本内容
fav += cbTalk.getText().toString();
}
if (cbSleep.isChecked()) {
// 如果cbSleep被选中,fav值为cbSleep的文本内容
fav += cbSleep.getText().toString();
}
if (cbBook.isChecked()) {
// 如果cbBook被选中,fav值为cbBook的文本内容
fav += cbBook.getText().toString();
}
// 定义一个int类型的值用来接收spClasses的下标值
int i = spClasses.getSelectedItemPosition();
// 定义一个String类型的值来接收所选班级的内容
String classs = classes[i];
// 使用Intent来启动ThridlyActivity,即实现跳转页面
Intent it = new Intent(getApplicationContext(), ThirdActivity.class);
// 将String数据打包到Intent中,并给它一个Key标识
it.putExtra("fav", fav);
it.putExtra("sex", sex);
it.putExtra("username ", userName );
it.putExtra("pwd", pwd);
it.putExtra("classs", classs);
// 启动Intent
startActivity(it);
// Toast显示,如果不需要可以不写
Toast.makeText(getApplicationContext(), sex + fav + id + pwd + classes,
1).show();
}
}
在activity_third.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"
tools:context=".ThirdActivity" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="65dp" >
<TextView
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:gravity="center_vertical|right"
android:text="账号:"
android:textSize="25dp" />
<TextView
android:id="@+id/tv_copy"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="4"
android:background="#edc"
android:textSize="25sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="65dp" >
<TextView
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:gravity="center_vertical|right"
android:text="密码:"
android:textSize="25dp" />
<TextView
android:id="@+id/tv_pw"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="4"
android:background="#edc"
android:textSize="25sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="65dp" >
<TextView
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:gravity="center_vertical|right"
android:text="班级:"
android:textSize="25dp" />
<TextView
android:id="@+id/tv_classes"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="4"
android:background="#edc"
android:textSize="25sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="65dp"
>
<TextView
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:text="性别:"
android:gravity="center_vertical|right"
android:textSize="25dp"
/>
<TextView
android:id="@+id/tv_sex"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:textSize="25dp"
/>
<TextView
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1.5"
android:text="爱好:"
android:gravity="center_vertical|right"
android:textSize="25dp"
/>
<TextView
android:id="@+id/tv_fav"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1.5"
android:textSize="25dp"
/>
</LinearLayout>
</LinearLayout>
ThirdActivity.java代码如下:
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.widget.TextView;
public class ThridlyActivity extends Activity{
// 定义控件
TextView tvCopy,tvClass,tvPw,tvSex,tvFav,tvClasses;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 去掉标题栏
getActionBar().hide();
setContentView(R.layout.activity_thrid);
init();
// getIntent()方法获得这个intent
Intent it=getIntent();
// 再getStringExtra("Key"),获得String型变量值
// 注意:如果不加""是获得常量值
String userName=it.getStringExtra("username");
String pwd=it.getStringExtra("pwd");
String sex=it.getStringExtra("sex");
String fav=it.getStringExtra("fav");
String classs=it.getStringExtra("classs");
// 将获取到的值给每个TextView
tvCopy.setText(userName);
tvPw.setText(pwd);
tvSex.setText(sex);
tvFav.setText(fav);
tvClasses.setText(classs);
}
// 找到控件
public void init(){
tvCopy=(TextView) findViewById(R.id.tv_copy);
tvPw=(TextView) findViewById(R.id.tv_pw);
tvSex=(TextView) findViewById(R.id.tv_sex);
tvFav=(TextView) findViewById(R.id.tv_fav);
tvClasses=(TextView) findViewById(R.id.tv_classes);
}
}
最终效果图:
----下拉列表由于我是默认的所以看不清,可按照自己的需求来设置背景颜色以及字体颜色
如果有不正确或者更好的方法,欢迎指正