«

Activity之间的数据交换

时间:2024-3-2 17:15     作者:韩俊     分类: Html+Css


</pre><pre name="code" class="java"><p>Intent intent = new Intent(ThreeActivity.this, FourActivity.class);
intent.putExtra("name", "Echo");
intent.putExtra("age", 24);       
startActivity(intent);</p>
</pre><pre>

Intent intent = getIntent();
if(intent != null){
    String name = intent.getStringExtra("name");
    int age = intent.getIntExtra("age",0);
    textView.setText("name="+ name + " age=" + age);
}

通过Bundle传递数据(Bundle是负责底层跨进程间传递的一个通信协议)

在ThreeActivity.class中添加如下demo

Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("name", "Echo");
bundle.putInt("age", 24);
intent.putExtras(bundle);
startActivity(intent);

传递一个对象

package com.echo.activity;

import java.io.Serializable;

public class Person implements Serializable {

    private int age;
    private String name;
    private String address;
    public Person(int age, String name, String address) {
        super();
        this.age = age;
        this.name = name;
        this.address = address;
    }

    @Override
    public String toString() {
        // TODO Auto-generated method stub
        return "[name=" + name + "age=" + age + "address=" + address + "]";
    }
}

Intent intent = new Intent(ThreeActivity.this, FourActivity.class);
Person person = new Person(24, "Echo", "MianYang");
Bundle bundle = new Bundle();
bundle.putSerializable("person", person);
intent.putExtras(bundle);
startActivity(intent);

Intent intent = getIntent();
if(intent != null){
    Person person = (Person) intent.getSerializableExtra("person");
    textView.setText(person.toString());
}

传递一个Bitmap

Intent intent = new Intent(ThreeActivity.this, FourActivity.class);
Bundle bundle = new Bundle();
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
bundle.putParcelable("bitmap", bitmap);
intent.putExtras(bundle);
startActivity(intent);


Intent intent = getIntent();
if(intent != null){
    Bitmap bitmap = intent.getParcelableExtra("bitmap");
    imageView.setImageBitmap(bitmap);
}

传递一个大数据

       Intent intent = new Intent(ThreeActivity.this, FourActivity.class);
        Bundle bundle = new Bundle();

        int[] data = new int[1024*1024*8];
        bundle.putIntArray("data", data);

        intent.putExtras(bundle);
        startActivity(intent);

       Intent intent = getIntent();
        if(intent != null){
            int[] data = intent.getIntArrayExtra("data");
            Log.i("data", "data="+data);
        }

出现异常



创建一个大的Bitmap

       Intent intent = new Intent(ThreeActivity.this, FourActivity.class);
        Bundle bundle = new Bundle();   
        //480*1200 占有4字节的bitmap
        Bitmap bitmap = Bitmap.createBitmap(480, 1200, Config.ARGB_8888);
        bundle.putParcelable("bitmap", bitmap);
        intent.putExtras(bundle);
        startActivity(intent);


<pre name="code" class="java">       Intent intent = getIntent();
        if(intent != null){
            Bitmap bitmap = intent.getParcelableExtra("bitmap");
            imageView.setImageBitmap(bitmap);
        }


出现异常





标签: javascript html css

热门推荐