当前位置: 首页 > 知识库问答 >
问题:

Android Studio-在片段之间更改时底部导航崩溃

傅增
2023-03-14

我正在创建和应用程序,到目前为止一切都很好。今天,我处理一个片段中的数据,以访问我的webservice并返回json,然后将该数据插入到我的sqlite中,然后在listview中显示该数据并逐秒更新数据。

一切都是正确的,直到我发现如果我在底部导航中单击片段中的项目的位置过快,它将在应用程序对片段执行事务时崩溃。只有当我在该片段和其他4个片段中的多个片段之间单击时,才会发生这种情况。

所以我的问题是,我有没有办法解决这个问题?就像我从底部导航点击另一个项目,最后一个项目的过渡就会停止?如果是,怎么做?

共有2个答案

王辉
2023-03-14

我发现"compile"com.android.volley: volley: 1.0.0"版本的volley有这个错误,谷歌(或截击的人)从那时起就没有在谷歌库中更新volley。

解决这个问题的方法是使用非官方版本:“compile”com。mcxiaoke。截击:库:1.0.19“

这个版本已经纠正了截击中的这个“错误”。如果将来有人想知道更多,请访问麦克肖克的链接:https://github.com/mcxiaoke/android-volley

以及如何使用它的链接:https://www.thorntech.com/2016/03/parsing-html" target="_blank">json-android-using-volley-library/

松嘉运
2023-03-14

据我所知(信息很少),问题很可能是片段正在被销毁(当代码逻辑试图连接到服务器并将json数据返回到应用程序时),并且您正在尝试访问已销毁的片段元素(或项目,在本例中为列表视图,以使用接收到的数据填充它)。

在您的每个片段中,在接收到json数据之后,在执行任何其他操作之前,检查片段是否仍然可见并连接到活动,以及活动是否未被销毁。

// Check the activity is not destroyed and the 
// fragment is still connected to the activity
if (getActivity() != null && isAdded()) {
    // Parse the JSON data
    // Write to your SQL database
    // Load the data into the list view
}
 类似资料:
  • 我有底部的导航栏,点击导航栏中的项目,我正在替换片段。我有3个片段A、B、C,所以点击B项B片段被加载,在B中我调用3-4个API。所以现在如果我转到C,然后再次转到B,将创建一个新的B片段实例,并再次调用这些API,那么如何保存片段实例状态,并且在更改片段时不再调用API。这是我的密码。 我已经在MainActivity的onCreate中初始化了上面的片段成员变量

  • 我创建了一个带有“底部导航活动”的新项目: 这是生成的代码: 如何使用底部栏更改为新片段?例如,我有3个片段:Fragment1 Fragment2和Fragment3,我想用底部栏中的3个按钮更改为它们。我还想通过左右滑动手指来切换片段,我该怎么做?

  • 我有底部导航与片段和改型api调用 我调用来切换片段,如下所示 洛克卡特 在.java:6606)在java.lang.reflect.method.invoke(method.java)在com.android.internal.os.runtimeinit$methodandargscaller.run(runtimeinit.java:518)在com.android.internal.os

  • 我的主要活动中有一个底部导航栏。通过单击底部导航中的一个选项卡,我想更改视图中的片段。我有以下代码:主要活动: } 我的一个片段: 如果我单击其中一个选项卡,就会显示正确的片段,因此这是可行的。然而,当新片段出现时,我想单击另一个选项卡来显示另一个片段,这就行不通了。底部导航栏不会对单击做出反应。甚至日志。i语句不起作用,因此似乎没有调用导航项SelectedListener。 我对android

  • 我试图设置一个显示3个片段的底部导航。 问题是,该应用程序完全适用于Android 5.0,但在Android 6.0及更高版本上抛出错误... SdkVersion 26-minSdkVersion 21-塔吉特SdkVersion 26- 可以肯定的是,我一直在使用这个例子来构建这个应用程序,在我的代码中实现了这个方法之后,仍然会抛出一个异常。 提前感谢您的帮助。 错误: 主要活动 主要活动X

  • 在我的活动中,我有一个包含5个项目的底部导航视图。在底部导航视图中单击每个项目时,我正在加载一个片段。假设我在第3个项目上并且我正在更改方向,然后活动被重新创建并显示为选定的第一个项目。我通过在我的活动中给出以下代码来避免这种情况。 通过给出上述代码,我成功地将第三项显示为选中项。但这里的问题是片段正在被重新创建,而我的savedInstanceState在该片段中始终为null。我已经给了 在我