如何在视图类中创建1到100范围内的数字数组 [英] how to create array of numbers in range 1 to 100 in view class

查看:267
本文介绍了如何在视图类中创建1到100范围内的数字数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

每个人,请帮助我!

我想在形状中显示数字数组.

I want to show an array of numbers in a shape.

我做什么

1)我在View类中用画布绘制了一个形状.

1) I draw a shape with canvas in View class.

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

2) I create a single random number.

3)我搜索了很多&找出应该使用Drawtext来显示文本或数字.

3) I've searched a lot & find out that should use Drawtext to show a text or number.

4)我已经阅读了Random,Drawtext等文档.

4) I've read the documentation of Random, Drawtext, etc.

5)我尝试过循环,但在画布类&之外无法正常工作在内部,也将无限重复该单个数字.

5) I've tried for loop but it didn't work outside of canvas class & inside, also will repeat that single number infinite times.

我的问题

我不知道如何将该数字放入数组&如何在视图类中显示带有drawtext的数组.

I don't know how to put that number in an array & how to show array with drawtext in view class.

此刻,我只能显示一个随机数,但是想要显示一个随机数数组.

at the moment, I can show only one random number, but a want to show an array of random numbers.

我是Android和Android上的新手.我的英语不太好. 如果有人可以帮助我,我将非常感激.

I'm very new in Android & my English is not so good. I'll be very grateful if anybody can Help me through this.

谢谢.

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

Here's the part of my code that I used for creating a single random number (this is outside of class, constructor & onDraw method) :

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

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

& in onDraw method for showing this number i used below code :

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

推荐答案

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

Please try to use ArrayList to hold your random data, like:

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)一样,您需要添加一些垂直偏移量才能在下面的位置绘制新值.

Looks like you are drawing all your items into the same postion (x,y), you need to add some vertical offset to draw new value bellow previous one.

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

If you want to draw all you numbers as comma-separted string, you need to convert your array into String using 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);

这篇关于如何在视图类中创建1到100范围内的数字数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆