我沒有可序列化的數據,我必須發送到其他Activity
。 我嘗試使用Intent
,但這是不可能的。發送不可序列化的數據到新的活動
Intent intent = new Intent(v.getContext(), UserDetailActivity.class);
intent.putExtra("class", user);
v.getContext().startActivity(intent);
如何從以前Activity
將數據發送到新Activity
?
我沒有可序列化的數據,我必須發送到其他Activity
。 我嘗試使用Intent
,但這是不可能的。發送不可序列化的數據到新的活動
Intent intent = new Intent(v.getContext(), UserDetailActivity.class);
intent.putExtra("class", user);
v.getContext().startActivity(intent);
如何從以前Activity
將數據發送到新Activity
?
我不認爲你可以這樣做,因爲ParseUser需要實現可Parcelable或Serializable。您可能無法修改該課程,因此您可以這樣做:
創建一個包裝類並重建ParseUser對象。這個包裝器需要實現Parcelable或者Serializable。這可能並不總是奏效。
在此創建的應用程序類創建ParseUser對象的實例。
使用單身。
1可能比較棘手,2和3比較容易。
我使用了2,因爲解析SDK是不可能的。 3與2相同。 – Val 2013-04-27 11:14:05
您可以通過兩種方式
1.方式做到這一點,你正在做它通過意向
傳遞數據要使用的數據通過此方法使用getIntent()方法來發送你的第二個活動中,其你想傳遞的數據,這給你的意圖對象,並從thatvyou可以reteive數據傳遞你的密鑰
您可以使用Google Gson lib將對象轉換並解析爲JSON格式的字符串,並將它們作爲普通Java字符串傳遞。
將對象轉換爲JSON字符串:
ParseUser user=new ParseUser();
Gson gson = new Gson();
String json = gson.toJson(user);
要從JSON字符串解析它回對象:
ParseUser user = gson.fromJson(json, ParseUser.class);
一種無關的考慮,但是,是是否通過ParseUser到另一個活動是個好主意。 ParseUser可能因爲不好的庫設計而無法序列化,或者因爲它不應該以這種方式使用。由於我不使用這個特定的庫,我無法爲你回答這個問題。
如果你不能序列化或使對象Parcelable,路由它通過應用程序對象或靜態變量看起來像選項。
你也可以看看這個庫(https://github.com/noxiouswinter/gnlib_android/wiki/gnlauncher)我寫的使這個過程更容易發送數據到其他活動。它不要求對象被序列化或實現Parcelable。
'user'究竟是什麼?一個自定義的'User'類? – 2013-04-26 13:48:16
什麼是「用戶」的類型? – SKK 2013-04-26 13:48:18
你能詳細說明一下什麼樣的數據? – 2013-04-26 13:48:26