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

原文地址:https://www.cnblogs.com/juham/p/15181758.html