【发布时间】:2019-10-26 02:10:37
【问题描述】:
假设我有两个活动/课程。 MainActivity 和 SecondActivity。对于这些活动中的每一个,我都有单独的 XML 文件。在SecondActivity中,我有一个ListView,ID 为listview。
如何从 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 中的列表视图。
【问题讨论】:
-
"如何从 MainActivity 中的 SecondActivity 中检索 ListView?" -- 你没有,就像一个网页不访问另一个网页的 DOM 一样。如果 UI 的这些位是如此紧密耦合,则将它们设为具有共享
ViewModel的片段。 -
Activity 是具有关联窗口的流程入口点,而不仅仅是“屏幕”或“UI 元素”或“视图”。您可以以
SecondActivity存在的方式启动应用程序,但MainActivity在此会话期间/此过程中从未存在过。你不应该依赖两者之间的这种联系。 -
您的列表视图是否有自定义适配器?
标签: java android listview android-activity