首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android Button setOnClickListener 報錯:Activity 必須實現 OnClickListener 接口

     編輯:程式設計綜合問答

錯誤信息

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) {
            // 處理點擊
        }
    }
}

替代方案:匿名內部類 / Lambda

// 匿名類
continueBtn.setOnClickListener(new View.OnClickListener() {
    @Override public void onClick(View v) { /* ... */ }
});

// Java 8+ Lambda
continueBtn.setOnClickListener(v -> { /* ... */ });

此方式無需 Activity 實現接口,邏輯封裝更清晰。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved