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

Java arrayList重置自身[重复]

卢子民
2023-03-14

我目前正在android studio中开发一个应用程序,我有一个用于存储图像URL的字符串数组列表。在for循环中,我每次都会向ArrayList添加一个值,但在for循环之后,ArrayList似乎会重新设置自己。

for (int i = 0; i < imageUris.size(); i++) {
    imageFilePath = storageReference.child(imageUris.get(i).getLastPathSegment());

    StorageReference finalImageFilePath = imageFilePath;
    imageFilePath.putFile(imageUris.get(i)).addOnSuccessListener(taskSnapshot -> {
        finalImageFilePath.getDownloadUrl().addOnSuccessListener(uri -> {

            String imageUrl = uri.toString();
            imageUrls.add(imageUrl); // Here I'm adding to the ArrayList

            Log.d("test1", String.valueOf(imageUrls.size())); // the size is 1

        });
}


Log.d("test2", String.valueOf(imageUrls.size())); // the size is 0

谁能给我解释一下为什么它会自动复位?

共有2个答案

蒋浩
2023-03-14

可能您将此数组作为本地数组,所以在oncrate之前将此代码ArrayList imageURLS=new ArrayList<>(); 现在变量是全局的,如果您希望在应用程序关闭之前保存ArrayList,只需将数组设置为静态的

司寇飞航
2023-03-14

确保imageUrls变量实例变量不是局部变量。如果它是局部变量,则将其保留在特定方法之外。

 类似资料:
  • 问题内容: 我创建了一个自定义视图(我们称之为),该视图基本上只是使用画布在其自身上绘制一些文本。使用全局变量设置要绘制的文本。 在程序执行过程中的某个时候,我想更改全局变量,并重新绘制自身以更新文本。我尝试过然后,但这无济于事。我怀疑既然内的任何内容都没有改变,它认为没有理由打电话给我。是否有任何方法可以强制视图重新绘制自身,即使它认为不需要重新绘制它呢? 问题答案: 如果我在MyView内部有

  • 我正在使用fire base制作一个反应原生应用程序,用于使用电子邮件登录im并通过身份验证。但是,有没有办法使用用户名和密码登录?

  • 我有一个SpringBoot(1.5.6),带有SpringSecurity(4.2)和ThymeLeaf应用程序,允许用户重置密码。所有html页面都在src/resources/templates中。基本流程是: > 用户提供用户名(通过resetPage.html) 凭证已清除 生成令牌并通过电子邮件发送到用户名电子邮件 用户单击电子邮件中的url将重定向到重置密码页面(changePass

  • 如何获取新ASP中用户的密码。网络身份识别系统?或者如何在不知道当前密码(用户忘记密码)的情况下重置?

  • 问题内容: 实用程序类中有一个静态方法,该方法将从URL下载文件。已经设置了身份验证器,以便如果需要用户名和密码,则可以检索凭据。问题是,只要凭据有效,来自第一个成功连接的凭据将用于每个连接后缀。这是一个问题,因为我们的代码是多用户的,并且由于没有为每个连接检查凭据,所以没有适当凭据的用户可能会下载文件。 这是我们正在使用的代码 第一次下载文件时,我只从getPasswordAuthenticat

  • *已解决:未清除ArrayList ebwteen调用,因此列表不断增加。我加了烫发。在nextPermutation()中的第二个for循环之前清除(),问题解决了!感谢所有帮助过我的人。 在toString方法中返回ArrayList时遇到问题。我的任务是从数字1-10中生成10个排列列表。驱动程序中调用了10次方法nextPermutation。 我希望我的输出如下所示: 等等.. 相反,每