gpt4 book ai didi

java - 如何从其他 Activity 中获取 View ?

转载 作者:行者123 更新时间:2023-12-02 04:36:52 25 4
gpt4 key购买 nike

假设我有两个 Activity/类(class)。 主要 Activity 第二 Activity 。对于每项 Activity ,我都有单独的 XML 文件。在 SecondActivity 中,我有一个 ID 为 listviewListView

如何从MainActivity中的SecondActivity中检索ListView

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

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

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

导致崩溃的行如下所示:

adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList);
listview.setAdapter(adapter); //crash (nullpointerexception pointing to nullobject)

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

最佳答案

在 Android 中(有异常(exception)),您不能同时运行多个 Activity。您可以有多个 Fragment,但一次会显示一个 Activity(好吧,这不再是 100% 正确,但出于所有 Intent 和目的,情况仍然如此)。

您尝试做的事情在 Android 中被认为是极其糟糕的做法(对于 iOS 来说也是值得的)。

你可以/应该做什么?

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

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

有一个 Activity 来显示列表,当您想要添加内容时,可以启动另一个 Activity 来显示“编辑/添加”的 UI 或使用 fragment (一个 fragment 将具有列表,另一个 fragment 将具有用于编辑列表的 UI)。

这一切的数据在哪里?

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

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

返回 1(以显示更新的列表)是自动的,因为它询问“最新列表”。

哪里可以了解更多信息?

鉴于您发布的问题的期限,看来您对 Android 开发相对较新,因此我建议您花一个小时的时间阅读 Application Fundamentals来自 Google 官方文档。

关于java - 如何从其他 Activity 中获取 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56547339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com