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() {
            @Override
            public 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()+"");

 

 

你可能感兴趣的:(Android,Android,知识点记录)