创建 CustomButton 将 Button 扩展到在 onclick 之前调用的预设条件

Creating CustomButton Extends Button to pre set conditions which called before onclick

我已经扩展了按钮 class 并且我想要 运行 方法,例如 isInternetConnectedisUserLoggedIn 当用户点击这个按钮并执行 onclick 如果所有条件都满足。

例如,如果我创建了简单的表单,其中用户名、电子邮件、phone 没有。并放置提交按钮。当用户首先点击提交时,它会检查 isInternetConnectedisUserLoggedIn 如果满足则执行最终操作将用户数据保存到服务器或任何地方。

public class CustomButton extends Button {
private static final String TAG = "CustomButton";

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);
}

public CustomButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);
}

如果可以的话我就不用每次都检查了

  `mButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!isInternetConnected) {
                //show dialog or snackbar
            } else if (!isUserLoggedIn) {
                //show dialog or snackbar
            }else {
                // save data
            }
        }
    });`

现在我明白你在问什么了。您的问题的理想解决方案是 AOP(面向方面​​的编程)。 这些应该对你有帮助:

https://medium.com/@jdvp/aspect-oriented-programming-in-android-159054d52757 https://fernandocejas.com/2014/08/03/aspect-oriented-programming-in-android/

这个库应该可以帮助你:

https://www.eclipse.org/aspectj/