Java 当使用Awesome validation liabrary inside fragment对编辑文本进行验证时,应用程序停止
我想在片段中使用AwesomeValidation对EditText进行验证。单击按钮时,应检查验证,但应用程序在单击按钮时停止,并给出如下错误: java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.text.Editable android.widget.EditText.getText()” 这是我的密码:Java 当使用Awesome validation liabrary inside fragment对编辑文本进行验证时,应用程序停止,java,android,android-fragments,Java,Android,Android Fragments,我想在片段中使用AwesomeValidation对EditText进行验证。单击按钮时,应检查验证,但应用程序在单击按钮时停止,并给出如下错误: java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.text.Editable android.widget.EditText.getText()” 这是我的密码: AwesomeValidation awesomeValidation; edtxtfullname = (EditText)
AwesomeValidation awesomeValidation;
edtxtfullname = (EditText) view.findViewById(R.id.edtxtfullname);
btnNext = (Button) view.findViewById(R.id.btnNext);
awesomeValidation = new AwesomeValidation(ValidationStyle.BASIC);
awesomeValidation.addValidation(getActivity(),R.id.edtxtfullname, "^[A-Za-z\\s]{1,}[\\.]{0,1}[A-Za-z\\s]{0,}$", R.string.nameerror);
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (awesomeValidation.validate())
{
Toast.makeText(getActivity(), "Validation Successfull", Toast.LENGTH_LONG).show();
}
}
});
return view;
更新您的代码如下:
..
edtxtfullname = (EditText) view.findViewById(R.id.edtxtfullname);
btnNext = (Button) view.findViewById(R.id.btnNext);
awesomeValidation = new AwesomeValidation(ValidationStyle.BASIC);
//directly pass EditText
awesomeValidation.addValidation(edtxtfullname, "^[A-Za-z\\s]{1,}[\\.]{0,1}[A-Za-z\\s]{0,}$", R.string.nameerror);
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (awesomeValidation.validate())
{
Toast.makeText(getActivity(), "Validation Successfull", Toast.LENGTH_LONG).show();
}
}
});
return view;
试试这个,它会解决你的问题。我找到了问题的答案。我所做的工作如下:
awesomeValidation = new AwesomeValidation(ValidationStyle.BASIC);
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
awesomeValidation.addValidation(getActivity(),R.id.edtxtfullname, "^[A-Za-z\\s]{1,}[\\.]{0,1}[A-Za-z\\s]{0,}$", R.string.nameerror);
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (awesomeValidation.validate())
{
Toast.makeText(getActivity(), "Validation Successfull", Toast.LENGTH_LONG).show();
}
}
});
}
btnNext
您是否初始化了它?我想你错过了。不,我已经初始化了。我已更新了我的代码。请共享整个代码请确保R.id.edtxtfullname在片段视图中可用,并且您已在片段的onCreateView()中设置布局确保“edtxtfullname”在您的xml文件中设置为id,该文件由此activtyNo使用,这不是addvalidation方法获取4个参数的正确方法,例如awesomevalidation.addvalidation(context,int,string,int);这是一条正确的路。。它提到了mAwesomeValidation.addValidation(editText,“regex”,“Error info”)代码>