700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android中Intent传值

Android中Intent传值

时间:2020-01-08 14:09:00

相关推荐

Android中Intent传值

1 使用intent.putExtra 传递int ,String 值

传值界面

Intent intent = new Intent(Morning.this, NoonActivity.class);intent.putExtra("name", "小牧");intent.putExtra("age",10);startActivity(intent);

接受值介面

String name = getIntent().getStringExtra("name");int age = getIntent().getIntExtra("age",0);

需要注意的是getIntExtra(name,defaultValue) ,name就是对应传值界面的key值,defaultValue是自己取的一个默认值,就是

如果没有传递int值 默认值就会显示了,

2 我们也可以使用Intent 传bean 数据

例如一个 bean如下

package com.hly.skip;import java.io.Serializable;public class SkipBean implements Serializable{private String name;private String sex;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}}

传值界面代码如下

SkipBean skipBean = new SkipBean();skipBean.setName("小牧");skipBean.setSex("男");Intent intent = new Intent(SkipActivity.this,SkipTwoActivity.class);intent.putExtra("msg",skipBean);startActivity(intent);

接受值界面

SkipBean msg = (SkipBean) getIntent().getSerializableExtra("msg");Toast.makeText(this, msg.getName()+","+msg.getSex(), Toast.LENGTH_SHORT).show();

3 使用Bundle

传值界面

Intent intent = new Intent(Morning.this, NoonActivity.class);Bundle bundle = new Bundle();bundle.putString("name", "小牧");bundle.putInt("age",10);intent.putExtras(bundle);startActivity(intent);

这个intent使用的putExtras 后面多一个s ,跟intent不一样

接收值界面

Bundle nbundle = getIntent().getExtras();String name = nbundle.getString("name");int age = nbundle.getInt("age");

4 使用bundle 传递bean

首先需要写一个bean 如下

package com.hly.progressbar;import java.io.Serializable;public class Person implements Serializable {private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}

传值界面

private void initView() {final Person person = new Person();person.setName("小牧");person.setAge(18);btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(Morning.this, NoonActivity.class);Bundle mBundle = new Bundle();mBundle.putSerializable("value", person);intent.putExtras(mBundle);startActivity(intent);}});}

接收值界面

Person person = (Person) getIntent().getSerializableExtra("value");Log.e("========xiaomu",person.getName());Log.e("========xiaomu",person.getAge()+"");

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。