Android注册页面,并传递数据给下个页面进行数据显示

继上个教程“Android实现页面停留”,本教程我们在跳转后的SecondActivity里面实现注册页面,并将获取到的数据传递给下个页面,并进行展示

activity_second.xml代码如下:



    

    

        

        
    

    

        

        
    

    

        
        
        
    

    
        
        
            
            
        
    

    
        
        
        
        
        
            

    
        

效果图如下:







Android注册页面,并传递数据给下个页面进行数据显示_第1张图片

在res/layout文件夹下面新建一个Android XML File,后面要用

Android注册页面,并传递数据给下个页面进行数据显示_第2张图片

找到TextView起个名字simple_item

Android注册页面,并传递数据给下个页面进行数据显示_第3张图片

 新建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 adapter = new ArrayAdapter(
				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,我们需要建所需要的文本框用来显示所获取到的所有数据

 代码如下:



    

        

        
    

    

        

        
    
    

        

        
    
    
        
        
        
        
    

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);
	}


}

最终效果图:

Android注册页面,并传递数据给下个页面进行数据显示_第4张图片Android注册页面,并传递数据给下个页面进行数据显示_第5张图片

 ----下拉列表由于我是默认的所以看不清,可按照自己的需求来设置背景颜色以及字体颜色

        如果有不正确或者更好的方法,欢迎指正

你可能感兴趣的:(android,studio,android,android-studio)