• Android_Intent_passValue(4)


    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=".MainActivity" >
    
        <EditText 
            android:id="@+id/et_account"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:hint="请输入账号 "/>
        <EditText 
            android:id="@+id/et_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:hint="请输入密码 "/>
        <RadioGroup 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/sex"
            android:orientation="horizontal">
            <RadioButton 
                android:id="@+id/sex_man"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="男"
                android:textSize="15sp"
                />
            <RadioButton 
                android:id="@+id/sex_woman"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="女"
                android:textSize="15sp"
                />
        </RadioGroup>
        <Button 
            android:id="@+id/btn_login"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="第一种传值方式:传递基本数据类型"
            android:onClick="clickLogin"
            android:textSize="20sp"/>
        <Button 
            android:id="@+id/btn_login1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="第二种传递方式:使用bundle传递基本数据"
            android:onClick="clickLogin"
            android:textSize="20sp"/>    
        <Button 
            android:id="@+id/btn_login2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="第三种传递方式:通过可序列化对象传值"
            android:onClick="clickLogin"
            android:textSize="20sp"/>    
        <Button 
            android:id="@+id/btn_login3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="第四种传递方式:通过bundle传递可序列化对象"
            android:onClick="clickLogin"
            android:textSize="20sp"/>        
    </LinearLayout>

    MainActivity.java

    package com.example.day05_intent_passvalue;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Intent;
    import android.text.TextUtils;
    import android.view.Menu;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    
    public class MainActivity extends Activity {
    private EditText et_name;
    private EditText et_psd;
    private RadioGroup sex;
    private RadioButton sex_man;
    private RadioButton sex_woman;
    private Button btn_login;
    private Button btn_login1;
    private Button btn_login2;
    private Button btn_login3;
    private String name;
    private String psd;
    private int checkedRadioButtonId;
    private int sex1;
    
    /**
     * Intent传值:
     *     将Main1中输入的值传递到main2
     * 
     */
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //初始化控件
            initView();
            
        }
    
        private void initView() {
            et_name = (EditText) findViewById(R.id.et_account);
            et_psd = (EditText) findViewById(R.id.et_password);
            sex = (RadioGroup) findViewById(R.id.sex);
            sex_man = (RadioButton) findViewById(R.id.sex_man);
            sex_woman = (RadioButton) findViewById(R.id.sex_woman);
            btn_login = (Button) findViewById(R.id.btn_login);
            btn_login1 = (Button) findViewById(R.id.btn_login1);
            btn_login2 = (Button) findViewById(R.id.btn_login2);
            btn_login3 = (Button) findViewById(R.id.btn_login3);
        }
        public void clickLogin(View v){
            switch (v.getId()) {
            case R.id.btn_login:
                //传递基本数据类型
                passBaseDate();
                break;
            case R.id.btn_login1:
                //通过Bundle传递基本数据
                passBaseDataByBundle();
                break;
            case R.id.btn_login2:
                //传递可序列化对象
                passSerializedObject();
                break;
            case R.id.btn_login3:
                //通过Bundle传递可序列化对象
                passSerializedObjectByBundle();
                break;
    
            }
    
            
        }
        private void passSerializedObjectByBundle() {
            //获得数据
            getData();
            //创建Student对象,将数据封装成Student对象
            Student s = new Student(name,psd,sex1);
            //创建一个Intent对象,设置跳转的activity
            Intent intent = new Intent(MainActivity.this,Activity2.class);
            //创建Bundle对象,将序列化对象设置到bundle对象中
            Bundle bundle = new Bundle();
            bundle.putSerializable("Student", s);
            //将bundle设置到intent对象中
            intent.putExtra("BUNDLE",bundle);
            //开启另一个activity
            startActivity(intent);
            
        }
    
        private void passSerializedObject() {
            // TODO Auto-generated method stub
            getData();
            Intent intent = new Intent(MainActivity.this,Activity2.class);
            Student s = new Student(name,psd,sex1);
            intent.putExtra("Student", s);
            startActivity(intent);
        }
    
        private void passBaseDataByBundle() {
            // TODO Auto-generated method stub
            //获得数据
            getData();
            //创建一个Intent对象,并设置其跳转的activity
            Intent intent = new Intent(MainActivity.this,Activity2.class);
            //创建Bundle对象,将值存入到Bundle对象中
            Bundle extras = new Bundle();
            extras.putString("NAME", name);
            extras.putString("PSD", psd);
            extras.putInt("SEX", sex1);
            //将bundle设置到intent中
            intent.putExtra("BUNDLE",extras);
            //开启另一个activity
            startActivity(intent);
        }
    
        private void passBaseDate() {
            // TODO Auto-generated method stub
            //获得数据
            //通过intent意图将数据传递过去
            getData();
            //1.创建intent意图
            Intent intent = new Intent();
            //2.指定需要开启的activity
            intent.setClass(MainActivity.this,Activity2.class);
            //3.设置需要传递的数据
            intent.putExtra("NAME", name);
            intent.putExtra("PSD", psd);
            intent.putExtra("SEX", sex1);
            //4开启另一个activity
            startActivity(intent);
        }
    
        private void getData() {
            name = et_name.getText().toString().trim();
            psd = et_psd.getText().toString().trim();
            sex1 = -1;
            checkedRadioButtonId = sex.getCheckedRadioButtonId();
            //利用安卓自带文本工具类判断文本数据是否为空
            if(TextUtils.isEmpty(name)||TextUtils.isEmpty(psd)){
                return;
            }
            if(checkedRadioButtonId==sex_man.getId()){
                sex1 = 1;
            }else{
                sex1  = 2;
            }
        }
    
    }

    Activity2.java

    package com.example.day05_intent_passvalue;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.text.TextUtils;
    import android.widget.TextView;
    
    public class Activity2 extends Activity{
        private TextView tv;
        private String sex;
        private String name;
        private String psd;
        private int sexId;
        private String data;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main2);
            tv = (TextView) findViewById(R.id.name);
            //data = getBaseDate();
            //通过Bundle对象得到基本数据类型的数据
            //data =getBaseDataByBundle();
            //通过序列化对象得到数据
    //        data = getSerializedObject();
            //通过Bundle对象得到序列化对象从而得到基本类型数据
            data = getSerialzedObjectByBundle();
            //设置文本显示的内容
            tv.setText(data);
                
            
        }
    
        private String getSerialzedObjectByBundle() {
            //得到传过来的intent对象
            Intent intent = getIntent();
            //得到Bundle对象
            Bundle bundle = intent.getBundleExtra("BUNDLE");
            //通过bundle对象得到序列化对象
            Student s = (Student) bundle.getSerializable("Student");
            name = s.getName();
            psd = s.getPsd();
            sexId = s.getSex();
            if(TextUtils.isEmpty(name)||TextUtils.isEmpty(psd)){
                return null;
            }
            if(sexId==1){
                sex = "男";
            }else{
                sex = "女";
            }
            return "账号:"+name+",密码:"+psd+",性别:"+sex;
        }
    
        private String getSerializedObject() {
            // TODO Auto-generated method stub
            Intent intent = getIntent();
            Student s = (Student) intent.getSerializableExtra("Student");
            name = s.getName();
            psd = s.getPsd();
            sexId = s.getSex();
            if(TextUtils.isEmpty(name)||TextUtils.isEmpty(psd)){
                return null;
            }
            if(sexId==1){
                sex = "男";
            }else{
                sex = "女";
            }
            return "账号:"+name+",密码:"+psd+",性别:"+sex;
        }
    
        private String getBaseDataByBundle() {
            //得到传过来的Intent
            Intent intent = getIntent();
            //获得Bundle数据
            Bundle extras = intent.getBundleExtra("BUNDLE");
            //通过Bundle对象得到基本类型数据
            name = extras.getString("NAME");
            psd = extras.getString("PSD");
            sexId = extras.getInt("SEX");
            if(TextUtils.isEmpty(name)||TextUtils.isEmpty(psd)){
                return null;
            }
            if(sexId==1){
                sex = "男";
            }else{
                sex = "女";
            }
            return "账号:"+name+",密码:"+psd+",性别:"+sex;
            
        }
    
        private String getBaseDate() {
            //1.获得传过来的Intent
            Intent intent = getIntent();
            name = intent.getStringExtra("NAME");
            psd = intent.getStringExtra("PSD");
            sexId = intent.getIntExtra("SEX", -1);
            if(TextUtils.isEmpty(name)||TextUtils.isEmpty(psd)){
                return null;
            }
            if(sexId==1){
                sex = "男";
            }else{
                sex = "女";
            }
            return "账号:"+name+",密码:"+psd+",性别:"+sex;
        }
    }
  • 相关阅读:
    vim 乱码问题的方法参考
    Node.js的原型继承函数 util.inherits
    UML类图画法及其之间的几种关系
    repo 小结
    Js_Eval方法
    Js_数组操作
    Js_字体滚动换颜色
    Js_图片轮播
    Jq_网站顶部定时折叠广告
    Js_网站右下角悬浮视窗可关闭广告
  • 原文地址:https://www.cnblogs.com/fangg/p/5722953.html
Copyright © 2020-2023  润新知