即時通訊嘗試在我的編輯文本上設置錯誤,如果用戶忘記登錄按鈕而不填寫文本字段。我嘗試了幾個代碼,但沒有任何幫助。每次運行應用程序都會崩潰。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
該按鈕被放置在片段中 –
我已經發布了日誌貓 –