【发布时间】:2020-02-27 13:16:10
【问题描述】:
我一直在使用 https://github.com/stepstone-tech/android-material-stepper 的步进器库
我已经为步进器创建了片段和适配器。它运行没有错误。每个片段都有一些表单元素。
为了验证这些元素,我使用了 AwesomeValidation 库。但是当我在验证时运行validate() 方法时它不起作用。它也没有给出任何错误。
如果有人以正确的方式指导我,那将非常有帮助。
代码如下:
公共类 FragmentProfileBasic 扩展 Fragment 实现 BlockingStep { EditText et_fname,et_lname,et_phone,et_address,et_city,et_state,et_profile_bio,et_dob; 微调器 rel_status; 无线电组无线电组; 单选按钮单选按钮; 字符串 relStatus,gender,phone,address,city,state,profile_bio,dob; AwesomeValidation awVal; @覆盖 public View onCreateView(LayoutInflater inflater, ViewGroup 容器, Bundle savedInstanceState) { 查看 v = inflater.inflate(R.layout.fragment_profile_basic, container, false); et_fname=v.findViewById(R.id.fname); et_lname=v.findViewById(R.id.lname); et_phone=v.findViewById(R.id.phone); //et_address=v.findViewById(R.id.address); et_city=v.findViewById(R.id.city); et_state=v.findViewById(R.id.state); et_profile_bio=v.findViewById(R.id.profile_bio); et_dob=v.findViewById(R.id.dob); radioGroup = v.findViewById(R.id.radio); awVal = new AwesomeValidation(ValidationStyle.BASIC); awVal.addValidation(getActivity(), R.id.fname, "[a-zA-Z\\s]+", R.string.fname_error); awVal.addValidation(getActivity(), R.id.phone, "[0-9]+", R.string.phone_error); awVal.addValidation(getActivity(), R.id.city, "[a-zA-Z\\s]+", R.string.city_error); awVal.addValidation(getActivity(), R.id.state, "[a-zA-Z\\s]+", R.string.state_error); awVal.addValidation(getActivity(), R.id.profile_bio, "[a-zA-Z0-9!#@.\\s]+", R.string.covertitle_error); //awVal.addValidation(this, R.id.profile_bio, "[a-zA-Z0-9!#@.\\s]+", R.string.bio_error); awVal.addValidation(getActivity(), R.id.dob, "[0-9/]+", R.string.dob_error); 返回 v; } @覆盖 公共验证错误 verifyStep() { //如果用户可以进行下一步,则返回null,否则创建一个新的VerificationError实例 返回空值; } @覆盖 公共无效 onSelected() { //选择时更新UI } @覆盖 public void onError(@NonNull VerificationError 错误) { //处理片段内部的错误,例如在 EditText 上显示错误 } @覆盖 公共无效 onNextClicked(StepperLayout.OnNextClickedCallback 回调){ 如果(awVal.validate()){ 回调.goToNextStep(); } } @覆盖 公共无效 onCompleteClicked(StepperLayout.OnCompleteClickedCallback 回调){ 回调.完成(); } @覆盖 公共无效 onBackClicked(StepperLayout.OnBackClickedCallback 回调){ } }【问题讨论】:
-
你修好了吗,如果是,你能分享一下代码吗?
-
是的,我已经用
onNextClicked方法解决了。您可以使用任何验证器插件,也可以检查输入或控件是否为空。