2016-10-18 5 views
-1

Я работаю над школьным проектом в Android Studio, и до сих пор я написал код, который генерирует случайное уравнение, а затем отображает это уравнение в текстовом виде. Вот код:Генерировать уравнение через определенное время

String[] operationSet = new String[]{"+", "-", "/", "*"}; 

      Random random = new Random(); 
      int numOfOperations = random.nextInt(2) + 1; 

      List<String> operations = new ArrayList<>(); 

      for (int i = 0; i < numOfOperations; i++) { 
       String operation = operationSet[random.nextInt(4)]; 
       operations.add(operation); 
      } 

      int numOfNumbers = numOfOperations + 1; 
      List<Integer> numbers = new ArrayList<>(); 

      for (int i = 0; i < numOfNumbers; i++) { 
       int number = random.nextInt(10)+1; 
       numbers.add(number); 
      } 

      String equation = ""; 
      for (int i = 0; i < numOfOperations; i++) { 
       equation += numbers.get(i); 
       equation += operations.get(i); 
      } 
      equation += numbers.get(numbers.size() -1); 

      TextView TextEquation = (TextView)findViewById(R.id.textView3); 
      TextEquation.setText(equation); 

      String stringResultOfEquation = String.valueOf(equation); 

      // Resultat der Rechung berechnen 

      double doubleAnswer = eval(stringResultOfEquation); 

      String stringAnswer = Double.toString(doubleAnswer); 

      TextView textAnswer = (TextView)findViewById(R.id.textView4); 
      textAnswer.setText(stringAnswer); 

До сих пор я пытался использовать команду TimerTask:

TimerTask timerTaskWaiting = new TimerTask() { 
     @Override 
     public void run() { 

     } 
    }; 

    Timer timerwaiting = new Timer(); 
    timerwaiting.schedule(timerTaskWaiting, 5000); 

Я поставил «уравнение код generater» и поместить его в «общественной недействительным запуска () {...} "но приложение разбилось, когда я попробовал это.

Мой вопрос сейчас, если есть простой способ, который будет генерировать уравнение через определенное количество времени (например, 5 секунд). Я хочу сказать, что я хочу, чтобы уравнение было сгенерировано через 5 секунд после запуска приложения ,

Если что-то неясно в моем вопросе, не стесняйтесь спросить, и я попытаюсь прояснить эту проблему :)

Спасибо уже заранее за вашу помощь!

+0

Почему вы хотите подождать 5 секунд? Это похоже на то, что вы пытаетесь * создать плохой пользовательский интерфейс. У меня есть чувство, что есть что-то еще, чего вы хотите достичь, и может быть лучший способ сделать это, не останавливая приложение. – Bryan

+0

5 секунд были всего лишь примером, это может быть 1 секунда или 2 секунды: D Однако я уже нашел решение. – zutru

ответ

1

Этот бит кода должен быть достаточным для понимания того, что вам нужно делать. очевидно, есть другие способы, которыми вы можете достичь этого.

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.my_layout); 
    Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     public void run() { 
      generateAndDisplayEquation(); 
     } 
    }, 5000); 

} 
+0

Да, я только что нашел это решение, но спасибо все же :) – zutru

+0

Тогда удалите свой вопрос или примите ответ, чтобы люди в будущем знали, что это его решение. Рад, что вы его исправили – Ricardo

0

Использование библиотеки RxJava, это очень простой инструмент для организации периодических задач.

Смежные вопросы