如何在当前活动中将搜索结果保存在 ListView (Android) 中

Posted

技术标签:

【中文标题】如何在当前活动中将搜索结果保存在 ListView (Android) 中【英文标题】:How to save search results in a ListView (Android) in current Activity 【发布时间】:2018-09-13 19:27:01 【问题描述】:

在我的应用程序中,我有 3 个活动 1. 搜索框活动(一) 2. ListView Activity 显示结果(B) 3. WebView Acitivity 显示单页(C)

A -> B -> C

我使用系统返回按钮返回或有

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

它会在应用程序中显示一个后退按钮。

成功显示单个结果后我返回

A

如何将搜索结果保存在 当前 Activity (B) 中的 ListView (android) 中,以便在我打开 新 Activity (C) 时 strong> 通过单击 ListView 项,我可以返回并显示相同的搜索结果。

对我来说,当我通过按系统返回按钮新打开的 Activity (C) 回到上一个 Activity (B) 时,应用程序崩溃了/strong>。

我在不同的论坛和 *** 上尝试了许多建议。这包括使用onSaveInstanceState();保存数据

protected void onSaveInstanceState(Bundle outState) 
    outState.putString("someVarB", saveMe);
    super.onSaveInstanceState(outState);
    Toast.makeText(this,"Saving Entry = " + saveMe, Toast.LENGTH_SHORT).show();
    System.out.println("You are in onSaveInstanceState! " + saveMe);

对接没有成功。当我从 Activity C 返回到 Activity B 时,应用程序崩溃了。

请建议我如何解决我的问题谢谢。

【问题讨论】:

【参考方案1】:

我尝试了整晚不同的解决方案,但没有任何效果。

但这是我找到的非常简单且 100% 有效的解决方案。

public void onBackPressed()  
    finish();

它将完成新打开的Activity(C)并显示上一个Activity(B)

我从不需要保存任何数据。实际上,上一个活动 (B) 不是 停止 而是 暂停 并且已经存在其中的所有内容。它只是在 new Activity (C) 打开时隐藏。当我们 finish(); n新打开的 Activity (C) 时,它是 Stopped(); 并且之前再次显示 Not Recreated。

它可以帮助某人并节省他的时间。谢谢

【讨论】:

以上是关于如何在当前活动中将搜索结果保存在 ListView (Android) 中的主要内容,如果未能解决你的问题,请参考以下文章

在不同的活动中将数据从 ListView 传递到 TextView,Android

如何编写xpath来获取当前活动窗口的结果?

如何在 Kotlin 中将对象列表从活动 A 传递到活动 B?

在Android中将数据从活动发送到片段

如何保存ListView的位置?

刷新同一活动中剩余的当前片段(ListView 数据)