我对android很新,所以我正在尝试教程代码。特别是记事本。
如果你看这里:http://developer.android.com/resources/tutorials/notepad/notepad-ex2.html,在第5步,它们会放置值,以便NoteEdit可以使用它。
我想将NotesDbAdapter的引用传递给NoteEdit,以便我可以实际完成一些完全不同的事情。
它似乎没有调用构造函数。我曾尝试在NoteEdit onCreate中添加一个paramiter,但它似乎不喜欢这个? : - (
我最期待听到你的答案,专家! :-D
答案 0 :(得分:3)
Put / Get extras不会通过构造函数传递,你必须明确地读取intent,可能是在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");
答案 1 :(得分:2)
我同意Castiblanco先生的意见。不要试图这样做。
您的Adapter
包含对主Activity
的引用,ListView
与Adapter
附加Adapter
的引用。如果您要将Activity
转到新的Activity
,那么您的新Activity
将保留对旧Activity
的引用。这将阻止Android销毁旧的Activity
以释放其他应用程序的内存,因为您的新Service
将保留对它的引用,从而防止垃圾回收。
如果您需要在活动之间共享数据模型,请将该数据模型保留在这些活动之外(例如,数据库,Application
,Adapter
)。您的{{1}}不是您的数据模型。