zoukankan      html  css  js  c++  java
  • 03-Android基础知识---03-在 Activity 之间传递参数



    Activity之间传递参数:


      传递简单参数:

     


      传递数据包 bundle:

    TheAty.java:

    package com.imooc.sendargs;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.TextView;
    
    public class TheAty extends AppCompatActivity {
    
        private TextView tv;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_the_aty);
    
            Intent i = getIntent();
            //第二节第一种方式:
            //Bundle data = i.getExtras();
    
            //第二节第二种方式:
            Bundle data = i.getBundleExtra("data");
    
            tv = (TextView) findViewById(R.id.tv);
    
            //第二节Bundle数据包传递:
            tv.setText(String.format("name=%s,age=%d,name1=%s",data.getString("name"),data.getInt("age"),data.getString("name1","leo")));
    
    
    
    
            //获取从MainActivity中传过来的数据,这是第一节简单数据传递:
            //tv.setText(i.getStringExtra("data"));
        }
    }

    MainActivity.java:

    package com.imooc.sendargs;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
             findViewById(R.id.btnStartAty).setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
                     Intent i = new Intent(MainActivity.this,TheAty.class);
                     //传参数到另外一个Activi,这是第一节传递简单数据:
                     //i.putExtra("data","hello jikexueyuan");
    
                     //第二节,传递数据包bundle:
                     Bundle b = new Bundle();
                     b.putString("name","jikexueyuan");
                     b.putInt("age",2);
                     b.putString("name1","iwen");
                     //第二节的第一种方式:
                     //i.putExtras(b);
                     //第二节的第二种方式:
                     i.putExtra("data",b);
    
                     startActivity(i);
                 }
             });
        }
    }

     传递值的对象:

     User.java:

    package com.imooc.sendargs;
    
    import android.os.Parcel;
    import android.os.Parcelable;
    
    import java.io.Serializable;
    
    //public class User implements Serializable{
    public class User implements Parcelable {
        private String name;
        private int age;
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public User(String name,int age){
            this.name = name;
            this.age = age;
        }
    
        @Override
        public int describeContents() {
            return 0;
        }
    
        @Override
        public void writeToParcel(Parcel dest, int flags) {
            dest.writeString(getName());
            dest.writeInt(getAge());
        }
        public static final Creator<User> CREATOR =new Creator<User>() {
            @Override
            public User createFromParcel(Parcel source) {
                return new User(source.readString(),source.readInt());
            }
    
            @Override
            public User[] newArray(int size) {
                return new User[0];
            }
        };
    
    }


    获取Activity的返回参数:

  • 相关阅读:
    kubernetes进阶(一) kubectl工具使用详解
    二进制安装kubernetes(七) 部署知识点总结
    1024程序员节:这就是国内开发者的现状?
    php 伪协议
    浅谈 PHP 与手机 APP 开发(API 接口开发)
    比RBAC更好的权限认证方式(Auth类认证)
    PHP获得毫秒数
    2020年PHP面试题附答案(实战经验)
    分享几套2019年各大公司最新的PHP面试题,几斤几两一试便知
    PHP面试题2019年百度工程师面试题及答案解析
  • 原文地址:https://www.cnblogs.com/juham/p/15181758.html
Copyright © 2011-2022 走看看