簡體   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