2016-08-14 85 views
0

從活動如何發送主叫活動的對象被稱爲活動

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活動,但startActivity lamp.this活動的對象(意向)沒有被調用。

我越來越java.io.NotSerializableException

+0

'putExtra(「variable」,lamps.this);' - >'putExtra(「variable」,lamps); '//你想要通過的對象 – Shaishav

+0

它顯示預期表達式的錯誤 –

回答

1

首先使類序列化,它的對象,您將可以發送

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

然後接收作爲

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

我已經實現了燈類的可串行化類 –

+0

我可以使用燈具類嗎 –

+0

你想在哪裏使用燈具類? –

0

使用Gson圖書館爲此目的。由Gson將對象轉換爲字符串,然後將其發送給另一個活動。從意圖獲取該字符串並將其轉換爲對象

0

請注意,bundle可以保存參數的最大大小(1MB,如果我沒有弄錯)。如果這是一個巨大的對象,你會得到一個TransactionTooLargeExceptionexception。因此,請注意考慮其他方法(本地存儲,可存放對象的DataManager等)

相關問題