ユーザーがテキストフィールドに入力せずにログインボタンを押せば、私の編集テキストにエラーを設定しようとしています。私はいくつかのコードを試したが、何も助けなかった。私がそれを走らせるたびにアプリケーションがクラッシュしていました。ログインボタンは、それがアクティブべきsetOnClickListenerを押したとき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();
}
});
}
});
}
}
です。 私は、テキストフィールドが空であるかどうかをチェックしたいので、もしそうなら、私はtextEditでsetErrorしたいです。そうでなければ、私はそれを続けたい。 私のコードが間違っているとはかなり確信しているので、私はあなたの助言者が必要です。
クラッシュログ
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)
をあなたのログを投稿猫、あなたの編集テキストはどこですか?このようなIDは、 'login =(Button)getActivity()。findViewById(R.id.loginBtn);'という部分にあります。アクティビティで?または断片?私は 'onViewCreated()'メソッドを使用してフラグメント内のIDを見つける必要があります – Redman
ボタンがフラグメントに配置されました –
ログを投稿しました –