在应用程序中打印二维数组会显示空白屏幕

时间:2019-05-16 08:43:23

标签: java android

我制作了包含名称和任务的二维数组。 该功能给用户随机任务。 当我尝试打印包含用户和随机任务的数组时,出现黑屏。

public String[][] start() {
    int[] taken = new int[this.numberOfRowsT()];
    String[][] h = new String[numberOfRowsN()][(numberOfRowsT()) / (numberOfRowsN()) + 1];
    int a = 1;
    int x;


    for(int b = 0; b < this.numberOfRowsN(); b++){
        h[b][0] = this.getUsersByID(b+1).toString();
    }

    while (a != this.numberOfRowsT()) {
        x = (int) Math.random() * ((this.numberOfRowsT()) + 1);
        for (int j = 0; j < taken.length; j++) {
            if (x == taken[j]) {
                j = -1;
                x = (int) Math.random() * ((this.numberOfRowsT()) + 1);
            }
        }
        taken[a] = x;                                   // acceptable num from here

        h[((a % this.numberOfRowsN()) + 1)][this.numberOfRowsN() % a] = this.getTaskByID(x).toString();
        a++;

    }
    return h;
}

     public void onClick(View v) {
            String[][] h = mydb.start();

            for (int i = 0; i < mydb.numberOfRowsN(); i++) {
                for (int j = 0; j < mydb.numberOfRowsT() / 
                                                mydb.numberOfRowsN(); j++)
                    if (h[i][j] != null)
                        l.append(h[i][j]);
                l.append("\n"); // Append newline after every row
            }
        }

    });
}

1 个答案:

答案 0 :(得分:0)

这里:

String[][] h = mydb.start();

我想您想使用2D数组来收集所有要打印的字符串。 问题是:您仅声明并填充该数组。

但这是一个局部变量,一旦运行onClick(),它就会超出范围。

因此:如果您想打印内容,则需要对收集的数据进行处理。要么放入某个UI元素,要么至少将其记录下来,或者发送给System.out.printn()(当然,只有在您拥有控制台的情况下,它才起作用,并且对于Android应用程序而言这不是可行的选择)。