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的返回参数:
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步