元件觸發事件
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_DOWN
, MotionEvent.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
}
留言
張貼留言