[英]method is not invoked
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. 为此,您应该覆盖要为其接收触摸事件的视图的OnTouchListener
。 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. onTouchEvent仅适用于视图。 Activities are not views themselves. 活动不是视图本身。 Instead, you need to set an onTouchListener. 相反,您需要设置一个onTouchListener。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.