如何在视图 class 中创建 1 到 100 范围内的数字数组

how to create array of numbers in range 1 to 100 in view class

大家帮帮我吧!

我想在形状中显示一组数字。

我做了什么

1) 我在视图 class.

中用 canvas 绘制了一个形状

2) 我创建了一个随机数。

3) 我搜索了很多,发现应该使用 Drawtext 来显示文本或数字。

4) 看过Random、Drawtext等的文档

5) 我试过 for 循环,但它在 canvas class 和内部都不起作用,也会无限次重复那个数字。

我的问题

我不知道如何将该数字放入数组中以及如何在视图中显示带有绘图文本的数组 class。

目前,我只能显示一个随机数,但我想显示一组随机数。

我是 Android 的新手,我的英语不是很好。 如果有人能帮助我解决这个问题,我将不胜感激。

谢谢。

这是我用于创建单个随机数的代码部分(这在 class、构造函数和 onDraw 方法之外):

Random rand = new Random();
        int number = rand.nextInt(100) + 1;
        String mystring = String.valueOf(number);

& 在用于显示此数字的 onDraw 方法中,我使用了以下代码:

@Override
public void onDraw(Canvas canvas) {
    super.onDraw(canvas);
canvas.drawText(mystring,130,480,black_paintbrushstroke);
}

请尝试使用ArrayList来保存您的随机数据,例如:

ArrayList<Integer> arrayList = new ArrayList<>(100); 
Random r = new Random(System.currentTimeMillis());
for(int i = 0; i < 100; i++) {
    arrayList.add(r.nextInt());
}

然后:

@Override
public void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    int yOffset = 10;
    int yStartPosition = 480;
    for (int i = 0; i < arrayList.size(); i++) {
        Integer integer = arrayList.get(i);
        canvas.drawText(String.valueOf(integer), 130, yStartPosition+(i*yOffset), black_paintbrushstroke);
    }
}

看起来您正在将所有项目绘制到同一位置 (x,y),您需要添加一些垂直偏移以在前一个位置下方绘制新值。

如果您想将所有数字绘制为逗号分隔的字符串,您需要使用 StringBuilder 将数组转换为字符串:

StringBuilder sb = new StringBuilder();
for(int i = 0; i < arrayList.size(); i++) {
    sb.append(arrayList.get(i)).append(",");
}

String myRandomNumbersArray = sb.toString();
sb.setLength(0);