1

2 つ以上の異なるカスタム ビューに同じダブルタップ タッチ リスナーを適用するにはどうすればよいですか?

view1.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        return mGestureDetector.onTouchEvent(event);
    }
});
view2.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        return mGestureDetector.onTouchEvent(event);
    }
});
mGestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener() {
    @Override
    public void onLongPress(MotionEvent e) 
    {
        displayPTZControlsPopup(corresponding view id); 
    }

    @Override
    public boolean onDoubleTap(MotionEvent e) 
    {
        Intent intent = new Intent(VideoView.this,FullScreenVideo.class);
        startActivity(intent);
        return true;
    }

    @Override
    public boolean onDown(MotionEvent e) 
    {
        return true;
    }
});
mGestureDetector.setIsLongpressEnabled(true);

誰でも私を助けることができますか?

4

2 に答える 2

1

このようにしてください:

view1.setOnTouchListener(this);
view2.setOnTouchListener(this);

@Override
public boolean onTouch(final View view, MotionEvent event) {
    if(view.getId() == idOfYourView1 || view.getId() == idOfYourView2) {
        //Apply the method to one of the view touched
    }
}
于 2012-08-09T17:18:53.093 に答える
1

このコードを試してください:

        GestureDetectorCompat gdc = new GestureDetectorCompat(this,new SimpleOnGestureListener(){
        @Override
        public boolean onDoubleTap(MotionEvent e) { 
        /*Your block of code*/
        /*(In my Case)*/
        startActivity(new Intent(getApplicationContext(),Your_activity.class));
            return false;
        }
    });

次に、コードを次のようにビューに割り当てます。

    myview = (TextView)findViewById(R.id.txtview);
    myview.setOnTouchListener(new View.OnTouchListener() {
       @Override
       public boolean onTouch(View v, MotionEvent event) {
            gdc.onTouchEvent(event);
           return true;
       }
   });

それは私のために働いた...

于 2015-07-04T13:10:26.600 に答える