Для этой проблемы вы можете попробовать следующий код, который работает для меня:
public class CustomButton extends AppCompatButton {
public CustomButton(Context context) {
super(context);
}
public CustomButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomButton(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void setOnClickListener(@Nullable OnClickListener l) {
super.setOnClickListener(l);
setText("asdf");
}
}
Вот XML:
<com.example.stackoverflowquestions.CustomButton
android:id="@+id/customButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:text="Custom Button"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:background="@color/colorPrimaryDark"/>
И просто используйте его в MainActivity как:
CustomButton customButton = findViewById(R.id.customButton);
customButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});