创建CustomButton扩展按钮以设置在onclick之前调用的条件

问题描述 投票:1回答:1

我扩展了Button类,当用户单击此按钮时,并且如果满足所有条件,则在执行isInternetConnected之后,我想运行isUserLoggedInonclick之类的方法。

例如,如果我创建了一个简单的表单,其中用户名,电子邮件地址,电话号码和放置提交按钮。当用户首先单击提交时,它会检查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
            }
        }
    });`
java onclicklistener android-button
1个回答
2
投票

现在我明白您的要求了。对于您的问题,理想的解决方案是AOP(面向方面​​的编程)。这些应该可以帮助您:

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

此lib应该可以帮助您:

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

© www.soinside.com 2019 - 2024. All rights reserved.