2016-10-20 16 views
0

現在、Android Studioの学校プロジェクトで作業していますが、今まではランダムな方程式を生成するコードを作成しました。今私は2つの方程式を表示したいと思うし、ユーザーはこれらの2つの方程式のどちらがより大きな結果を持つかを決定しなければなりません。ユーザは、第2の方程式がより大きい場合にはスィィンプメントアップを行い、第2の方程式が小さければスウィンプエモネーションをダウンさせなければならない。 はここにランダム方程式のコードです:スワイプイベントの条件が複数ある場合

String[] operationSet = new String[]{"+", "-", "/", "*"}; 
String stringResultOfEquation; 
String equation; 
double doubleAnswer1; 
public void start1() { 
    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); 

    double doubleAnswer1 = eval(stringResultOfEquation); 

    String stringAnswer = Double.toString(doubleAnswer1); 

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

しかし、私はスワイプイベントのコードを記述する方法がわかりません。

if((doubleAnswer1 > doubleAnswer2) && (MotionEvent.ACTION_DOWN = true)){ 
     //create new equation 
     } 

そしてMotionEventが間違った方向とした場合だけでなく、他のすべてのpossibilty(doubleAnswer1 < doubleAnswer2)のために:のような条件ならば、私は、複数のことを考えていました。 私はそれをやろうとしましたが、うまくいかなかったので、私は今何を試していいのか分かりません。たぶん誰かがこれを解決する方法を考えているかもしれません。

何かが私の質問に明確ではない場合は、お気軽に、私は、問題を明確にしようとします:)

あなたの助けを事前にすでにありがとうございます!

答えて

1

それを検出するために使用GestureDetector

をあなたはこのコードを使用することができ、垂直スワイプを検出するために:

class MyGestureListener extends GestureDetector.SimpleOnGestureListener 
{    
    @Override 
    public boolean onDown(MotionEvent event) 
    { 
     Log.d(TAG,"onDown: " + event.toString()); 
     return true; 
    } 

    @Override 
    public boolean onFling(MotionEvent start, MotionEvent finish, float velocityX, float velocityY) 
    { 
     if (start.getRawY() < finish.getRawY()) { 
      //down 
     } else { 
      //up 
     } 

     return true; 
    } 
} 
+0

そして、どの場合doubleAnswer1> doubleAnswer2または他の方法でラウンド私は私のコードのためにこれを使うのですか? – zutru

+0

このコードは、ユーザーが行ったことを検出し、textViewsに設定し、OnFlingメソッドで正しいかどうかをチェックします。 – cuoka

関連する問題