實作 implements OnClickListener 時,AS 自動匯入 android.content.DialogInterface.OnClickListener,而非預期的 View.OnClickListener。
專案中同時可見兩個同名介面:
View.OnClickListener:元件點擊事件 (最常用)。DialogInterface.OnClickListener:對話框按鈕點擊。AS 預設按字母序或最近使用匯入,導致衝突。
class MyClickListener implements View.OnClickListener { ... }
import android.view.View.OnClickListener;
// ...
implements OnClickListener
android.view.View.OnClickListener 加入優先清單,或停用「Add unambiguous imports on the fly」。採用 **Lambda/匿名類別** 直接在 setOnClickListener 內實作,避免類別爆炸與匯入衝突:
button.setOnClickListener(v -> { /* 處理邏輯 */ });