第一种:第一个Activity
/**
* 通过这个方法跳转到activity2界面*/
public void gotoActivity2(View v){
//创建一个意图
Intent intent=new Intent(this,MainActivity2.class);
//第一种传值方式
Bundle bundle=new Bundle();
bundle.putString("name","zhangsan");
bundle.putInt("age", 23);
intent.putExtra("person", bundle);
//启动另一个activity
startActivity(intent);
}
第二个Activity
/**
* Activity被创建时调用
* 可以在该方法中初始化UI组件
* 该方法调用完毕会调用onStart()方法
* */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
System.out.println("MainActivity2-onCreate()");
//获取上一个activity传过来的参数
Intent intent=getIntent();
Bundle bundle=intent.getBundleExtra("person");
String name= bundle.getString("name");
int age=bundle.getInt("age");
System.out.println(name+" : "+age);
TextView textView=(TextView) findViewById(R.id.textView2);
textView.setText("name="+name+" age="+age);
}
第二种:activity1
//第二种传值方式
intent.putExtra("name", "小白");
startActivity(intent);
activity2
Intent intent=getIntent();
String name2= intent.getStringExtra("name");
TextView textView=(TextView) findViewById(R.id.textView2);
textView.setText("name2="+name2);
传递自定义类型(自定义类,自定义类必须序列化)
activity1
//传递自定义类型
Cat cat=new Cat(1, "校花", 23);
intent.putExtra("cat", cat);
startActivity(intent);
activity2
//第二种
String name2= intent.getStringExtra("name");
Cat cat=(Cat) intent.getSerializableExtra("cat");
TextView textView=(TextView) findViewById(R.id.textView2);
textView.setText("cat="+cat.toString());
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。