gpt4 book ai didi

java - Android - 使用数组动态添加图像到列表

转载 作者:行者123 更新时间:2023-12-02 11:29:38 24 4
gpt4 key购买 nike

我的数据库中存储了几个包含文件名的字符串数组。我想循环遍历这个数组以一一返回存储在内部存储中的文件。数组之一的示例:

[["12","21","31"],["empty","22","32"],["13","23","33"]]// this is the array unmodified

下面是我现在的代码,但只是给了我一个索引错误,因为索引从 12 开始,因为数组从 12 开始。

layout = layout.replaceAll("\"empty\",?", "").replaceAll("[\"\\]\\ 
[\"]+","").replaceAll("^\"|\"$", ""); //this removes the "empty" string
String[] layoutArray = layout.split(",");


int rows = 3;
int columns = 3;

int layoutElement = 0;
try {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
// get the image from the internal storage
int imageIndex = Integer.valueOf(layoutArray[layoutElement]) - 1;
String imageFile = layoutArray[imageIndex];
Bitmap image = BitmapFactory.decodeFile(new File(getFilesDir(), imageFile).getAbsoluteFile().toString());
mImageList.add(new Grid(getApplicationContext(), i, j, image, imageFile));
layoutElement++;
}
}
} catch (Exception e) {
e.printStackTrace();
}

我知道我的代码在逻辑上完全错误,但我需要帮助,但无法理解它。每个数组值都有一个由该数字存储的文件名,我删除了“空”,因为不需要它。我的最终目标是将这些文件(即图像)放入 GridView 中。

最佳答案

  • 您正在使用“,”拆分文本,它将数组(您作为示例提供的)拆分为 9 个元素...您需要将所有“],[”替换为“]-[”之类的内容并使用“-”分割字符串。

    layout = layout.replaceAll("\\] , \\[", "\\] - \\[");  
    String[] layoutArray = layout.split("-");
  • 您正在为每个嵌套循环增加 layoutElement 的值,而不在第一个循环中重置它 >>这段代码应该按预期工作

    layout = layout.replaceAll("\"empty\",?", "").replaceAll("^\"|\"$", "").replaceAll("\\],\\[", "\\]-\\[");
    String[] layoutArray = layout.split("-");

    try {
    for (int i = 0; i < layoutArray.length; i++) {
    layoutArray[i]= layoutArray[i].replaceAll("[\\[\"\\]]","");
    String[] splitted = layoutArray[i].split(",");
    for (int j = 0; j < splitted.length; j++) {
    int imageIndex = Integer.valueOf(splitted[j]) - 1;
    String imageFile = splitted[imageIndex];
    Bitmap image = BitmapFactory.decodeFile(new File(getFilesDir(), imageFile).getAbsoluteFile().toString());
    mImageList.add(new Grid(getApplicationContext(), i, j, image, imageFile));

    }
    }
    } catch (Exception e) {
    e.printStackTrace();
    }

关于java - Android - 使用数组动态添加图像到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49374473/

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