创建CustomButton将按钮扩展到在onclick之前调用的预先设置的条件



我已经扩展了Button类,我想在用户单击该按钮时运行isInternetConnectedisUserLoggedIn等方法,如果所有条件都满足,则在执行onclick之后运行。

例如,如果我创建了一个简单的表单,其中放置了用户名、电子邮件、电话号码和提交按钮。当用户首先点击提交时,它会检查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-proprogramming-in-android-159054d52757https://fernandocejas.com/2014/08/03/aspect-oriented-programming-in-android/

这个库应该会帮助你:

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

最新更新