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
}
}
});
}
答案 0 :(得分:0)
这里:
String[][] h = mydb.start();
我想您想使用2D数组来收集所有要打印的字符串。 问题是:您仅声明并填充该数组。
但这是一个局部变量,一旦运行onClick()
,它就会超出范围。
因此:如果您想打印内容,则需要对收集的数据进行处理。要么放入某个UI元素,要么至少将其记录下来,或者发送给System.out.printn()
(当然,只有在您拥有控制台的情况下,它才起作用,并且对于Android应用程序而言这不是可行的选择)。