---
# System prepended metadata

title: 元件觸發的幾種方式
tags: [介紹]

---

元件觸發的幾種方式
===

* [方法1](https://ithelp.ithome.com.tw/articles/10203714)：透過自訂Class方式

* [方法2](https://ithelp.ithome.com.tw/articles/10204135)：同第一種，只是使用原本的Class，注意寫法。

* [方法3](https://ithelp.ithome.com.tw/articles/10204157)：直接寫在 `setOnTouchListener` 函數中，很多官方與多數書籍的資料都是用這一種方法，但是當很多的元件想使用同一動作的時候，就要將每個元件都寫一個一模一樣的程式碼，變得冗長。

* [方法4](https://ithelp.ithome.com.tw/articles/10204801)：建立一個變數，讓元件指到此變數即可。此方式可以解決方法3的問題，例如：

```java=
imageView1.setOnTouchListener(mOnTouchListener);
imageView2.setOnTouchListener(mOnTouchListener);
```
```java=
private OnTouchListener mOnTouchListener = new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        ...
        return false;
    }
};
```

###### tags: `介紹`