method is not invoked
//view flipper code
......................................
public class HomeActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
private ViewFlipper mViewFlipper;
private float initialX;
private Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
mContext = this;
mViewFlipper = (ViewFlipper) this.findViewById(R.id.view_flipper);
//play and stop button for image slideshow(working fine)
findViewById(R.id.play).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mViewFlipper.setAutoStart(true);
mViewFlipper.setFlipInterval(1000);
mViewFlipper.startFlipping();
}
});
findViewById(R.id.stop).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mViewFlipper.stopFlipping();
}
});
}
//The below method is not getting invoked
public boolean onTouchEvent(MotionEvent touchevent) {
switch (touchevent.getAction()) {
case MotionEvent.ACTION_DOWN:
initialX = touchevent.getX();
System.out.println(initialX);
//not displaying value in android
monitor
break;
case MotionEvent.ACTION_UP:
float finalX = touchevent.getX();
System.out.println(finalX);
//not displaying value in android monitor
if (initialX > finalX) {
if (mViewFlipper.getDisplayedChild() == 0)
//image flipper has 3 images
break;
mViewFlipper.showNext();
} else {
if (mViewFlipper.getDisplayedChild() == 2)
break;
mViewFlipper.showPrevious();
}
break;
}
return false;
}
}
Well, It seems you're trying to perform some action on touching some view. For that you should override OnTouchListener
of the view for which you want to receive touch event. It can be done as follows:
findViewById(R.id.your_view_id).setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (touchevent.getAction()) {
case MotionEvent.ACTION_DOWN:
initialX = touchevent.getX();
System.out.println(initialX);
break;
case MotionEvent.ACTION_UP:
float finalX = touchevent.getX();
System.out.println(finalX);
if (initialX > finalX) {
if (mViewFlipper.getDisplayedChild() == 0)
//image flipper has 3 images
break;
mViewFlipper.showNext();
} else {
if (mViewFlipper.getDisplayedChild() == 2)
break;
mViewFlipper.showPrevious();
}
break;
}
return false;
}
});
onTouchEvent is only for Views. Activities are not views themselves. Instead, you need to set an onTouchListener.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.