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的返回参数:

  • 相关阅读:
    在Web服务调试时,出现IIS配置错误的相应解决办法
    Eclipse解决Launch error: Failed to connect to remote VM [duplicate]
    在Eclipse中应该怎样去修改Android应用程序的包名(注意按步骤修改)
    用Fragment实现Tab页面切换效果初步总结
    与像素无关的dp单位与像素单位px之间的转换
    在Andorid开发项目中遇到的Bug记录(续)
    java邮件
    图片上传实例
    java多线程总结一:线程的两种创建方式及优劣比较
    java多线程总结二:后台线程(守护线程)
  • 原文地址:https://www.cnblogs.com/juham/p/15181758.html
Copyright © 2011-2022 走看看