The method setOnClickListener(View.OnClickListener) in the type View is not applicable for the arguments (MainActivity)
MainActivity 未實現 View.OnClickListener 接口,但將 this 傳給 setOnClickListener(this)。
public class MainActivity extends Activity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_myActivity);
Button continueBtn = findViewById(R.id.ContinueBtn);
continueBtn.setOnClickListener(this); // 此處 this 合法
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.ContinueBtn) {
// 處理點擊
}
}
}
// 匿名類
continueBtn.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) { /* ... */ }
});
// Java 8+ Lambda
continueBtn.setOnClickListener(v -> { /* ... */ });
此方式無需 Activity 實現接口,邏輯封裝更清晰。