Случайные 7-значные номера на andich android -- java поле с участием android поле с участием random пол Связанный проблема

Random 7 digit numbers on click android


0
vote

проблема

русский

Я хотел бы, чтобы вы помогли мне в этом коде. Я могу генерировать случайные числа, но не в точном количестве.

Вопрос: Как я могу генерировать 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   
Английский оригинал

I would like you to help me on this code. I can generate random numbers but not in exact count.

Question is, how can I generate 7 random digits once button is click?

Please refer to my code below:

    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()));                   }        });   }   } 

Here's is my XML file

     <?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 
</div
        
 
 

Список ответов

5
 
vote

Попробуйте использовать математические и случайные классы Java, как и в этой функции для генерации случайных чисел с цифрами «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   
 

Try this using Math and Random classes of JAVA as in this function to generate random numbers with "n" digits. For example random number with 7 digits.

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 
</div
 
 
1
 
vote

Вы можете использовать таймер обратного отсчета. http://developer.android.com/reference/android/os/countowntimer.html

Вот пример: http://sree.cc/google/android/android -Тимер-пример

 

You can use a countdown timer. http://developer.android.com/reference/android/os/CountDownTimer.html

Here is an example: http://sree.cc/google/android/android-timer-example

</div
 
 
0
 
vote

Вы можете использовать Java случайно Класс:

 <код> final int MAX_VALUE = 100; Random rand = new Random(); int randValue1 = rand.nextInt(MAX_VALUE); int randValue2 = rand.nextInt(MAX_VALUE);   
 

You can use Java Random class:

final int MAX_VALUE = 100; Random rand = new Random(); int randValue1 = rand.nextInt(MAX_VALUE); int randValue2 = rand.nextInt(MAX_VALUE); 
</div
 
 
0
 
vote
 <код> int[] rand = new int[7]; int ceiling = 100;  // for random numbers from 0 to 99 for (int i=0; i < rand.length; i++) {     rand[i] = (int)Math.floor(ceiling*Math.rand()); }   

Для выполнения через регулярные интервалы Проверьте этот пост: Как запустить бегунную нить в Android?

 
int[] rand = new int[7]; int ceiling = 100;  // for random numbers from 0 to 99 for (int i=0; i < rand.length; i++) {     rand[i] = (int)Math.floor(ceiling*Math.rand()); } 

To execute at regular intervals check out this post: How to run a Runnable thread in Android?

</div
 
 
 
 
0
 
vote
 <код> /** Returning the Random Numbers*/ public String random () throws NoSuchAlgorithmException {     Random ranGen = new SecureRandom();     byte[] randomno= new byte[8];      ranGen.nextBytes(randomno);     String str = new String(randomno, "UTF8");     return str ; }   
 
/** Returning the Random Numbers*/ public String random () throws NoSuchAlgorithmException {     Random ranGen = new SecureRandom();     byte[] randomno= new byte[8];      ranGen.nextBytes(randomno);     String str = new String(randomno, "UTF8");     return str ; } 
</div
 
 
0
 
vote

Создает номер ниже 10 миллионов, затем отформатируйте его как 7 цифр:

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

Generate a number below 10 million, then format it as 7 digits:

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

Измените свой код следующим образом:

 <код>     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();     }    }   
 

Modify your code as follows :

    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();     }    } 
</div
 
 
     
     

Связанный проблема

4  403 доступ запрещен на указанный URL в Tomcat 7.0.52  ( 403 access denied to specified url in tomcat 7 0 52 ) 
Я недавно мигрировал сервер Tomcat из <код> 7.0.49 на <код> 7.0.52 . В Tomcat он содержит 2 веб-приложений, которые работали ранее, после миграции на эту вер...

2  Изменить формат дата в DTO JSON на возвращении через @Responsebode  ( Change date format in dto json on returning through responsebody ) 
Я просто хочу изменить формат даты в моем DTO, возвращенный @Responseboodbody Мой вопрос не Этот вопрос как мой выход Список JSON и я печатаю его по почте...

-1  Как добавить JTable для JPanel  ( How to add a jtable to a jpanel ) 
Мой вопрос может показаться немного глупо, но каждый раз, когда я использую качели, у меня проблемы с таблицами. Таким образом, я работаю над школьным проекто...

-3  Как прекратить воспроизведение сервиса в Android  ( How to stop playing service in android ) 
У меня есть вопрос о сервисе и трансляции в Android.I Создайте страницу будильника, которые используя класс тревоги Reciver (он расширяет класс трансляции) дл...

3  Итализация через хесмап: «Для» петля с использованием произвольного доступа или итератора?  ( Iterating over a hashmap for loop using random access or iterator ) 
Мне нужно повторить через хешмап, чтобы извлекать значения, хранящиеся в нем. Как бонус, у меня также есть список клавиш. Поэтому у меня есть возможность по...

16  Обычная задача Android (эквивалент Cronjob)  ( Android regular task cronjob equivalent ) 
Последний раз, когда этот вопрос был задан (другим пользователем), ответ ответа был: Если это работает в беговой активности, вы можете использовать таймер ...

0  Прокрутите вверх относительной макета при прокрутке вверх по просмотру  ( Scroll up relative layout when scrolling up listview ) 
Я создаю приложение. и пользовательская информация отображается в относительной макете. При относительной макете - это список с элементами, создаваемыми польз...

2  Мой бар jmenu не показывает  ( My jmenu bar is not showing up ) 
Мой jmenubar не показывает, когда я запускаю свое приложение. Как я могу это исправить ?? Поэтому, когда я бегу свой Jframe, мне нужно увидеть мой jmenubar ...

0  Прямоугольник и круг Collision Java, используя .Наиград  ( Rectangle and circle collision java using intersection ) 
Я делаю игру на прорыв для школьного проекта. Единственная проблема, которую я бегу в, это мяч, подпрыгивая, когда мяч и кирпичи сталкиваются. Я использовал B...

-1  Как установить Jlint-3.0 на Ubuntu 14.04.2? [Дубликат]  ( How to install jlint 3 0 on ubuntu 14 04 2 ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> Этот вопрос уже есть ответы здесь : ...

16  Enum внутри jsp [дубликат]  ( Enum inside a jsp ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> Этот вопрос уже есть ответы здесь : ...

40  Можете ли вы сказать во время выполнения, если вы запускаете Java из банки?  ( Can you tell on runtime if youre running java from within a jar ) 
У меня есть приложение, которое некоторые из моих пользователей работают от Eclipse, и другие запускают его, используя файл JAR. Я хочу, чтобы некоторые дей...

0  Передаваемые данные из другого потока, медленно последовательная связь с библиотекой Java и RxTx  ( Transmitting data from another thread slow serial link with java and rxtx libra ) 
<Р> Хорошо, я постараюсь быть как можно более ясно с моей проблемой. Я передача последовательных данных по veeeeeeery медленного радиоканала (с помощью UART-ко...

1  Неправильное количество прошедших args, но я передаю правильную сумму  ( Wrong number of args passed but i pass the correct amount ) 
Я использую quil с cljure и получаю странную ошибку. Я получаю ошибку <код> Exception in :draw function: #error { :cause Wrong number of args (1) pass...

1  Libgdx setscreen () сбивает игру, когда сделано несколько раз  ( Libgdx setscreen crashes game when done multiple times ) 
У меня есть <код> GameScreen и после окончания уровня, я устанавливаю экран обратно в <код> GameScreen как перезапустить , когда пользовательская кнопка пе...

Связанный проблема

4  403 доступ запрещен на указанный URL в Tomcat 7.0.52 
2  Изменить формат дата в DTO JSON на возвращении через @Responsebode 
-1  Как добавить JTable для JPanel 
-3  Как прекратить воспроизведение сервиса в Android 
3  Итализация через хесмап: «Для» петля с использованием произвольного доступа или итератора? 
16  Обычная задача Android (эквивалент Cronjob) 
0  Прокрутите вверх относительной макета при прокрутке вверх по просмотру 
2  Мой бар jmenu не показывает 
0  Прямоугольник и круг Collision Java, используя .Наиград 
-1  Как установить Jlint-3.0 на Ubuntu 14.04.2? [Дубликат] 
16  Enum внутри jsp [дубликат] 
40  Можете ли вы сказать во время выполнения, если вы запускаете Java из банки? 
0  Передаваемые данные из другого потока, медленно последовательная связь с библиотекой Java и RxTx 
1  Неправильное количество прошедших args, но я передаю правильную сумму 
1  Libgdx setscreen () сбивает игру, когда сделано несколько раз