0

私のアクティビティは単純なログイン アクティビティであり、(テストのみ) ユーザー名とパスワードが等しい場合は true を返し、そうでない場合は false を返します。

しかし、それは常に false を返します。

例を変換してもtoString();

String a=(txtUserName.getText().toString() == txtPassword.getText().toString()) ? "equal" : "Nequal";

完全なコード:

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_login);
  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) {
      Toast.makeText(LoginActivity.this,txtUserName.getText(),Toast.LENGTH_LONG).show();
      Toast.makeText(LoginActivity.this,"Just for separate", Toast.LENGTH_LONG).show();
      Toast.makeText(LoginActivity.this,txtPassword.getText(), Toast.LENGTH_LONG).show();

      String a=(txtUserName.getText() == txtPassword.getText()) ? "equal" : "Nequal";

      Toast.makeText(LoginActivity.this, a, Toast.LENGTH_LONG).show();

    }

  });
}  
4

2 に答える 2

5

使用する

  String a=(txtUserName.getText().toString().equals(txtPassword.getText().toString()))

あなたがやっている方法は、文字列を同等にするのではなく、文字列オブジェクトを同等にすることです。文字列比較には常に String.equals() メソッドを使用します。

Java String.equals と ==

于 2013-03-11T18:27:45.943 に答える
1

文字列値を比較するには、String のequalsメソッドを使用します。オブジェクト参照の==演算子は、参照の等価性を比較します。これらは 2 つの異なるオブジェクトであるため、常に false を返します。

txtUserName.getText().equals(txtPassword.getText())
于 2013-03-11T18:28:04.883 に答える