[英]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.