繁体   English   中英

方法未调用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM