0

ユーザー名とパスワードを入力すると(両方が等しい場合)ログインページを作成しましたが、ログインに使用されますが、ユーザー名とパスワードは空白のままで、エミュレーターのログインボタンをクリックすると、ログインが成功したことが示されます。ユーザー名とパスワードは空白のままです

 @Override
         public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);

     txtUserName=(EditText)this.findViewById(R.id.txtUname);
     txtPassword=(EditText)this.findViewById(R.id.txtPwd);
     btnLogin=(Button)this.findViewById(R.id.btnLogin);
     btnLogin.setOnClickListener(new OnClickListener() {

             @Override
             public void onClick(View v) {            

                    if((txtUserName.getText().toString()).equals(txtPassword.getText().toString())){
                    Intent myIntent = new Intent(v.getContext(), SaveData.class);
                    startActivityForResult(myIntent, 1);
                    Toast.makeText(LoginappActivity.this, "Login Successful",Toast.LENGTH_LONG).show();
                    } else{
                    Toast.makeText(LoginappActivity.this, "Invalid Login",Toast.LENGTH_LONG).show(); 
                    }
               }
           });
 }           
       }
4

5 に答える 5

2

空白のユーザー名とパスワードも等しいためです。ユーザーが値を入力しないかどうかを確認してから、プロンプトを表示する必要があります。より適切には、TextUtils.isEmptyこの仕事をするために使用します。

public void onClick(View v) { 
   String username = txtUserName.getText().toString();
   String password = txtPassword.getText().toString();

   if(!TextUtils.isEmpty(username) && username.equals(password)){

          //do your stuff
   }
}
于 2012-05-16T10:30:38.500 に答える
2

最初にいくつかの検証を試して、いずれかのフィールドが空白かどうか、検証されたコードが

 btnLogin.setOnClickListener(new OnClickListener() {

                 @Override
                 public void onClick(View v) {            

                        if(txtUserName.getText().toString()).equals("")){
                             //Show Message
                        }else if(txtPassword.getText().toString().equals("")){
                             //Show Message
                        }else if(!(txtUserName.getText().toString()).equals(txtPassword.getText().toString())){
                           Toast.makeText(LoginappActivity.this, "Invalid Login",Toast.LENGTH_LONG).show(); 
                        }else{
                            Intent myIntent = new Intent(v.getContext(), SaveData.class);
                            startActivityForResult(myIntent, 1);
                            Toast.makeText(LoginappActivity.this, "Login Successful",Toast.LENGTH_LONG).show();
                        }
                   }
               });
于 2012-05-16T10:37:16.230 に答える
1

両方が等しく、両方が空白であることを確認するだけなので、条件が真の場合...

したがって、両方のフィールドが空かどうかを確認する必要があります...

お気に入り...

String strName = txtUserName.getText().toString();
String strPass = txtPwd.getText().toString();


     if(strName!=null&&strName.trim().length!=0&&strPass!=null && strPass.trim().length!=0){

    Intent myIntent = new Intent(v.getContext(), SaveData.class);
    startActivityForResult(myIntent, 1);
    Toast.makeText(LoginappActivity.this, "Login Successful",Toast.LENGTH_LONG).show();

  }else{
                Toast.makeText(LoginappActivity.this, "input your name and password",Toast.LENGTH_LONG).show();
           }
于 2012-05-16T10:30:45.683 に答える
0

txtUserName.getText().toString().length() > 0で条件を追加するだけ && operatorですif

if((txtUserName.getText().toString().length() > 0) && (txtUserName.getText().toString()).equals(txtPassword.getText().toString())){
       Intent myIntent = new Intent(v.getContext(), SaveData.class);
       startActivityForResult(myIntent, 1);
       Toast.makeText(LoginappActivity.this, "Login Successful",Toast.LENGTH_LONG).show();
       } else{
          Toast.makeText(LoginappActivity.this, "Invalid Login",Toast.LENGTH_LONG).show(); 
          }
     }
于 2012-05-16T10:31:51.027 に答える
0

これは、 (空の文字列)""と等しいために発生します。""

これを追加したいかもしれません

[...]
if(txtUserName.getText().toString().length() > 0 && (txtUserName.getText().toString()).equals(txtPassword.getText().toString()))
[...]
于 2012-05-16T10:32:17.230 に答える