如何将调用活动的对象发送到被调用的活动

时间:2016-08-14 09:28:32

标签: android

来自活动

  Intent intent = new Intent(lamps.this,light_control.class).putExtra("variable",lamps.this);


        startActivity(intent);

致活动

   Intent intent = getIntent();
         lampvaiable = (lamps)intent.getSerializableExtra("variable");

我必须在light_control.class活动中使用lamp.this活动的对象,但不会调用startActivity(intent)。

我收到了java.io.NotSerializableException

3 个答案:

答案 0 :(得分:1)

首先制作类Serializable,即发送

的对象
    Intent i = new Intent();
i.putExtra("variable", (Serializable) Object);

然后收到

Intent intent = getIntent();
lamps lamp = (Lamps) intent.getExtras().getSerializable("variable");

答案 1 :(得分:0)

为此目的使用Gson库。通过Gson将对象转换为字符串,然后将其发送到另一个活动。从intent中获取该字符串并将其转换为Object

答案 2 :(得分:0)

请注意,bundle可以保留最大大小的参数(1MB,如果我没有弄错的话)。如果这是一个巨大的对象,您将获得TransactionTooLargeExceptionexception。因此,请建议考虑其他方法(本地存储,将保存该对象的DataManager等)