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ライブラリを使用すると、定期的なタスクを整理するのに非常に簡単なツールです。

関連する問題