[英]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;
}
}
好吧,看來您是要在觸摸某些視圖時執行一些操作。 為此,您應該覆蓋要為其接收觸摸事件的視圖的OnTouchListener
。 可以按照以下步驟完成:
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僅適用於視圖。 活動不是視圖本身。 相反,您需要設置一個onTouchListener。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.