来自活动
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
答案 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等)