Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 点击android时随机输入7位数字_Java_Android_Random - Fatal编程技术网

Java 点击android时随机输入7位数字

Java 点击android时随机输入7位数字,java,android,random,Java,Android,Random,我希望你能在这个代码上帮助我。我可以生成随机数,但不能精确计数 问题是,点击按钮后如何生成7个随机数字 请参考下面我的代码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView

我希望你能在这个代码上帮助我。我可以生成随机数,但不能精确计数

问题是,点击按钮后如何生成7个随机数字

请参考下面我的代码:

    public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final Random myRandom = new Random();


        Button buttonGenerate = (Button)findViewById(R.id.generateme);
        final TextView textGenerateNumber = (TextView)findViewById(R.id.generatenumber);

        buttonGenerate.setOnClickListener(new OnClickListener(){

                 @Override
                 public void onClick(View v) {
                      // TODO Auto-generated method stub
                      textGenerateNumber.setText(String.valueOf(myRandom.nextInt()));
                  }
       });
  }
  }
这是我的XML文件

     <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

    <Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Generate Random number"
    android:id="@+id/generateme"
    />
    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/generatenumber"
    />
    </LinearLayout


你可以使用倒计时


下面是一个示例:

您可以使用倒计时

下面是一个例子:

int[]rand=newint[7];
内部天花板=100;//对于0到99之间的随机数
对于(int i=0;i
要定期执行,请查看此帖子:
int[]兰德=新的int[7];
内部天花板=100;//对于0到99之间的随机数
对于(int i=0;i
要定期执行,请查看此帖子: 您可以使用Java类:

您可以使用Java类:


按如下方式修改您的代码:

    public class MainActivity extends Activity {
public  static int[] randomNumbers=new int[7];
public static byte[] sevenDigits=new byte[7];
private  static boolean status=true;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final Random myRandom = new Random();
             genRandomNumbers();
        while(status);

        for (int  i : randomNumbers) {
            System.out.println(i);
        }
            System.out.println("seven digit random number : "+new String(sevenDigits));


        Button buttonGenerate = (Button)findViewById(R.id.generateme);
        final TextView textGenerateNumber = (TextView)findViewById(R.id.generatenumber);

        buttonGenerate.setOnClickListener(new OnClickListener(){

                 @Override
                 public void onClick(View v) {
                      // TODO Auto-generated method stub
                      textGenerateNumber.setText(String.valueOf(myRandom.nextInt()));
                  }
       });
  }

public  void genRandomNumbers() {
        new Thread(new Runnable() {

            @Override
            public void run() {

                Random random=new Random();
                while(true) {

                    for(int i=0; i<7 ;i++) {
                        randomNumbers[i]=random.nextInt(10);
                                            sevenDigits[i]=random.nextInt(10);
                    }
                    status=false;
                    try {
                        Thread.sleep(30000);
                    } catch (InterruptedException e) {                      
                        e.printStackTrace();
                    }

                }

            }
        }).start();
    }

  }
公共类MainActivity扩展活动{
公共静态整数[]随机数=新整数[7];
公共静态字节[]sevenDigits=新字节[7];
私有静态布尔状态=true;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终随机数myRandom=新随机数();
genRandomNumbers();
而(身份),;
for(int i:随机数){
系统输出打印LN(i);
}
System.out.println(“七位随机数:+新字符串(七位数字));
Button Button Generate=(Button)findViewById(R.id.generateme);
最终TextView textGenerateNumber=(TextView)findViewById(R.id.generatenumber);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
textGenerateNumber.setText(String.valueOf(myRandom.nextInt());
}
});
}
公开编号(){
新线程(newrunnable()){
@凌驾
公开募捐{
随机=新随机();
while(true){

对于(int i=0;i修改代码如下:

    public class MainActivity extends Activity {
public  static int[] randomNumbers=new int[7];
public static byte[] sevenDigits=new byte[7];
private  static boolean status=true;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final Random myRandom = new Random();
             genRandomNumbers();
        while(status);

        for (int  i : randomNumbers) {
            System.out.println(i);
        }
            System.out.println("seven digit random number : "+new String(sevenDigits));


        Button buttonGenerate = (Button)findViewById(R.id.generateme);
        final TextView textGenerateNumber = (TextView)findViewById(R.id.generatenumber);

        buttonGenerate.setOnClickListener(new OnClickListener(){

                 @Override
                 public void onClick(View v) {
                      // TODO Auto-generated method stub
                      textGenerateNumber.setText(String.valueOf(myRandom.nextInt()));
                  }
       });
  }

public  void genRandomNumbers() {
        new Thread(new Runnable() {

            @Override
            public void run() {

                Random random=new Random();
                while(true) {

                    for(int i=0; i<7 ;i++) {
                        randomNumbers[i]=random.nextInt(10);
                                            sevenDigits[i]=random.nextInt(10);
                    }
                    status=false;
                    try {
                        Thread.sleep(30000);
                    } catch (InterruptedException e) {                      
                        e.printStackTrace();
                    }

                }

            }
        }).start();
    }

  }
公共类MainActivity扩展活动{
公共静态整数[]随机数=新整数[7];
公共静态字节[]sevenDigits=新字节[7];
私有静态布尔状态=true;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终随机数myRandom=新随机数();
genRandomNumbers();
而(身份),;
for(int i:随机数){
系统输出打印LN(i);
}
System.out.println(“七位随机数:+新字符串(七位数字));
Button Button Generate=(Button)findViewById(R.id.generateme);
最终TextView textGenerateNumber=(TextView)findViewById(R.id.generatenumber);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
textGenerateNumber.setText(String.valueOf(myRandom.nextInt());
}
});
}
公开编号(){
新线程(newrunnable()){
@凌驾
公开募捐{
随机=新随机();
while(true){

对于(int i=0;i生成一个1000万以下的数字,然后将其格式化为7位数字:

public String gen7DigitNumber()
{
    Random rng = new Random();
    int val = rng.nextInt(10000000);
    return String.format("%07d", val);
}

生成1000万以下的数字,然后将其格式化为7位数:

public String gen7DigitNumber()
{
    Random rng = new Random();
    int val = rng.nextInt(10000000);
    return String.format("%07d", val);
}

在这个函数中使用JAVA的Math和Random类来生成带有“n”位的随机数,例如带有7位的随机数

private int nDigitRandomNo(int digits){
    int max = (int) Math.pow(10,(digits)) - 1; //for digits =7, max will be 9999999
    int min = (int) Math.pow(10, digits-1); //for digits = 7, min will be 1000000
    int range = max-min; //This is 8999999
    Random r = new Random(); 
    int x = r.nextInt(range);// This will generate random integers in range 0 - 8999999
    int nDigitRandomNo = x+min; //Our random rumber will be any random number x + min
    return nDigitRandomNo;
}
int digits = 7;
int n = nDigitRandomNo(digits);
//n will be a random number between 1000000 - 9999999

在这个函数中使用JAVA的Math和Random类来生成带有“n”位的随机数,例如带有7位的随机数

private int nDigitRandomNo(int digits){
    int max = (int) Math.pow(10,(digits)) - 1; //for digits =7, max will be 9999999
    int min = (int) Math.pow(10, digits-1); //for digits = 7, min will be 1000000
    int range = max-min; //This is 8999999
    Random r = new Random(); 
    int x = r.nextInt(range);// This will generate random integers in range 0 - 8999999
    int nDigitRandomNo = x+min; //Our random rumber will be any random number x + min
    return nDigitRandomNo;
}
int digits = 7;
int n = nDigitRandomNo(digits);
//n will be a random number between 1000000 - 9999999

为什么你不能把随机数生成代码放在一次执行7次的
for
中?为什么你不能把随机数生成代码放在一次执行7次的
for
中?你可以使用前面提到的倒计时,或者一个处理程序&runnable with postDelayed,我会在我的答案中添加一个链接。你知道吗可以使用前面提到的倒计时计时器,或者一个处理程序&runnable with postDelayed,我会在我的答案中添加一个链接到它。什么都没有发生,程序工作,但它不会生成7个随机数..t_T@jun我已经修改了代码。
randomNumbers
包含7个随机数,因此您可以在任何需要的地方使用。它打印的内容??当tton是单击它生成随机数,但不是7位数字。当我再次生成时,输出是9位随机数、8位随机数、10位随机数等等。我只需要它生成7位随机数。什么都没有发生,程序工作,但它不会生成7位随机数。不是吗_T@jun我已经修改了代码。
randomNumbers
包含7个随机数,因此您可以在任何需要的地方使用。它打印的内容??当单击按钮时,它生成随机数,但不是7位数字。当我再次生成时,输出是9位随机数、8位随机数、10位随机数等等。我只需要它生成7位随机数。