2015-06-19 2 views
0
public boolean onFling(MotionEvent e1, MotionEvent e2, 
       float velocityX, float velocityY) { 
      // TODO Auto-generated method stub 
      if(velocityX<-10.0f) 
      { 
       mCurrentStateLayout = mCurrentStateLayout == 0 ? 1 : 0; 
       switchLayoutStateTo(mCurrentStateLayout); 
      } 
      return true;  
     }   
    }); 

Что делает оператор mCurrentStateLayout = mCurrentStateLayout == 0? 1: 0; имею в виду?Fling с использованием GestureDetector android

+0

Это вопрос синтаксиса Java, никакого отношения к fling или GestureDetector. Заголовок/теги следует редактировать, чтобы избежать путаницы при поиске. – MadEqua

ответ

1
mCurrentStateLayout = mCurrentStateLayout == 0 ? 1 : 0; 

Это ternary оператор на Java. Это по существу короткая рука для выражения if else.

Если mCurrentStateLayout является равен 0, то утверждение верно и mCurrentStateLayout присваивается значение 1.

Если mCurrentStateLayout является не равен 0, то утверждение ложно и mCurrentStateLayout присваивается значение 0.

0

Чтобы показать это код. Это аналог кода, который вы вставили здесь:

public boolean onFling(MotionEvent e1, MotionEvent e2, 
       float velocityX, float velocityY) { 
      // TODO Auto-generated method stub 
      if(velocityX<-10.0f) 
      { 
       if (mCurrentStateLayout == 0) { 
        mCurrentStateLayout = 1; 
       } else { 
        mCurrentStateLayout = 0; 
       } 
       switchLayoutStateTo(mCurrentStateLayout); 
      } 
      return true;  
     }   
    }); 
+0

Хорошо .. получилось .. Спасибо! –

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