元件觸發事件

 from https://ithelp.ithome.com.tw/articles/10204801

首先把設定的動作單獨出來,並指定一個變數

private OnTouchListener mOnTouchListener = new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        return false;
    }
};

這樣在使用某個元件的話,就只要透過這一個變數就可以達到監聽反應的動作,例如:

imageView1.setOnTouchListener(mOnTouchListener);
imageView2.setOnTouchListener(mOnTouchListener);


from https://ithelp.ithome.com.tw/articles/10204157

以下是第三種方法的說明

//呼叫一個新的class
myImageView.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        //邏輯寫在這裡
        return false;
    }
});

第三種方法很簡單,
其實語法就算記不下來也沒關係,
新版的Android Studio會自動幫你完成,
只要大約記得關鍵字就可以,
(不要把touch記成mouse就好)




from https://stackoverflow.com/questions/8182513/ontouch-event-of-ontouchlistener-gets-called-twice-in-android

touchListener will be called for every MotionEvent.ACTION_DOWNMotionEvent.ACTION_UP, and MotionEvent.ACTION_MOVE . so if you want to execute code only once , ie MotionEvent.ACTION_DOWN then inside

onTouch()
 if (event.getAction() == MotionEvent.ACTION_DOWN) {
//your code 
}
















留言

熱門文章