我如何从其他活动中获取视图?

时间:2019-06-11 15:43:58

标签: java android listview android-activity

假设我有两个活动/课程。 MainActivity SecondActivity 。对于这些活动,我都有各自的XML文件。在 SecondActivity 中,我有一个ID为ListView的{​​{1}}。

如何从 MainActivity SecondActivity 中撤退listview

我尝试简单明了(在MainActivity.java中):

ListView

但是,当我尝试在其上设置适配器(nullPointerException)时,这会使我的应用程序崩溃。我尝试将其直接放置在我的类中以及onCreate方法中。两者都会导致崩溃。

导致崩溃的行如下所示:

ListView listview = (ListView) findViewById(R.id.listview);

我要做的是获取ListView并使用“ listview”对象将元素添加到MainActivity中的listview中。

1 个答案:

答案 0 :(得分:0)

在Android中(例外),您不能同时运行多个活动。您可以有多个片段,但是一次显示一个活动(好吧,这不再是100%正确的了,但是对于所有意图和目的,情况仍然如此)。

您尝试做的事情在Android(和值得这么做的iOS)中被认为是极其糟糕的做法。

您可以/应该做什么?

您的要求似乎以某种形式出现:我有一个项目列表,并且我还有另一个活动想在该清单中添加或删除内容。

这很好,但是您不需要“两个活动”来执行此操作。

有一个活动来显示列表,并且当您要添加内容时,要么启动另一个活动以显示“编辑/添加”的用户界面,要么使用Fragments(一个Fragment将拥有列表,另一个Fragment将具有列表) UI来编辑列表。

所有这些数据在哪里?

存储在一个第三位置(我们称之为“ YourListRepository”),该位置是一个类:

  1. 在“列表”中,您只是说:存储库,请给我最新列表!
  2. 在“编辑”屏幕上,您将说:存储库,请给我列表中的项目“ N”。然后,您将说:存储库,这是更新的项目“ N”,请刷新它。

自动返回到1(以显示更新的列表),因为它要求“提供最新列表”。

在哪里可以了解更多信息?

鉴于您所发布问题的任期,您似乎对Android开发还比较陌生,因此,我建议您花一小时的时间阅读Google官方文档中的Application Fundamentals