[英]Pass reference to another activity - Android
我對android非常陌生,因此我正在嘗試教程代碼。 特別是記事本。
如果您在此處查看: http : //developer.android.com/resources/tutorials/notepad/notepad-ex2.html ,則在第5步中輸入值,以便NoteEdit可以使用它。
我想將NotesDbAdapter的引用傳遞到NoteEdit中,以便實際上可以做一些完全不同的事情。
它似乎並沒有調用構造函數。 我曾嘗試向NoteEdit onCreate添加一個參數,但似乎不喜歡這樣嗎? :-(
專家,我最期待聽到您的回答! :-D
放置/獲取額外內容未通過構造函數傳遞,您必須明確地從意圖中讀取內容,可能在onCreate方法中
第一次活動
Intent myIntent = new Intent();
myIntent.putExtra("key", "value");
startActivity(myIntent);
新活動
onCreate中的代碼
Intent myIntent = getIntent();
myIntent.getExtra("key");
如果要傳遞自定義類,則該類必須實現可序列化,然后閱讀:
Bundle e = getIntent().getExtras();
Object obj=(Object) e.getSerializable("key");
我同意卡斯蒂布蘭科先生的意見。 不要嘗試這樣做。
您的Adapter
具有對主Activity
的引用,該主Activity
具有Adapter
連接到的ListView
。 如果要將Adapter
轉移到新的Activity
,則新的Activity
將保留對舊Activity
的引用。 這將阻止Android銷毀舊的Activity
以釋放其他應用程序的內存,因為新的Activity
將保留對它的引用,從而防止垃圾回收。
如果您需要在活動之間共享數據模型,請將該數據模型保留在那些活動之外(例如,database, Service
, Application
)。 您的Adapter
不是您的數據模型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.