即时通讯尝试在我的编辑文本上设置错误,如果用户忘记登录按钮而不填写文本字段。我尝试了几个代码,但没有任何帮助。每次运行应用程序都会崩溃。EditText设置错误
此这是代码
public class LoginFragment extends Fragment {
private ProgressDialog progressDialog;
private FirebaseAuth firebaseAuth;
EditText email,password;
Button login;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.activity_login_fragment, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
firebaseAuth = firebaseAuth.getInstance();
progressDialog = new ProgressDialog(getActivity());
login = (Button)getActivity().findViewById(R.id.loginBtn);
email = (EditText)getActivity().findViewById(R.id.regEmailEt);
password = (EditText)getActivity().findViewById(R.id.regPasswordEt);
login.setOnClickListener(new View.OnClickListener() {
String email1;
String password1;
@Override
public void onClick(View v) {
if(email.getText().length() == 0){
email.setError("Please enter your email");
}
if(password.getText().length() == 0){
password.setError("Please enter your password");
}
email1 = email.getText().toString();
password1 = password.getText().toString();
progressDialog.setMessage("Processing...");
progressDialog.show();
FirebaseAuth.getInstance().createUserWithEmailAndPassword(email1, password1)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(Task<AuthResult> task) {
if (task.isSuccessful()) {
startActivity(new Intent(getActivity(), MainActivity.class));
progressDialog.dismiss();
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
Toast.makeText(getActivity(), "Error:" + e.getMessage(), Toast.LENGTH_LONG).show();
progressDialog.dismiss();
}
});
}
});
}
}
当登录按钮按下它应该活性的setOnClickListener。 那里我想检查文本字段是否为空,如果他们是这样我想在textEdit中设置错误。否则,我希望它继续。 我很确定我的代码是错误的,所以我需要你的建议家伙。
崩溃日志
02-18 19:32:46.012 11162-11162/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.world.bolandian.whereareyou, PID: 11162
java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
at com.world.bolandian.whereareyou.LoginFragment$1.onClick(LoginFragment.java:52)
at android.view.View.performClick(View.java:5207)
at android.view.View$PerformClick.run(View.java:21177)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5441)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
线52 线52是 - >如果(email.getText()长度()== 0)
发表您的日志猫,你的编辑文本在哪里,我从来没有见过ome在片段'login =(Button)getActivity()。findViewById(R.id.loginBtn);'找到所有按钮所在的位置。在活动?或片段?我们必须使用'onViewCreated()'方法来查找分片中的ID – Redman
该按钮被放置在片段中 –
我已经发布了日志猫 –