0

Android アプリでユーザーのログイン パスワードを作成する必要があります。最初の部分では、setPass と確認パスを比較し、データベースに保存します。私の問題は、elseが実行されないことです。これが私のコードです...

  savePass.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
              if(setPass.getText().toString()
!=conPass.getText().toString()){
                Log.d("login", "Checking whether passwords created ok");
                Log.d("login", "setPass: " + setPass.getText().toString());
                Log.d("login", "conPass: " +  conPass.getText().toString());
                error.setText("Passwords do not match!");
            }else{
                Log.d("login", "showing dialog 0 ");
                showDialog(0);
                Log.d("login", "Instantiating loginNew");
                Login login = new Login();

                login.setPassword(setPass.toString());
                Log.d("login", "Adding to db");
                db.addPassword(login);
                Log.d("login", "opening main login form");
                Intent intent = new Intent("com.philsoft.budget.activity_main");
                startActivity(intent);  
            }
        }
    });
4

2 に答える 2

2

==2 つの文字列を演算子で比較しないでください。String.equals()代わりに使用してください。

if(setPass.getText().toString().equals(conPass.getText().toString())){
// your necessary codes

} else {

}

==コンテンツではなく、オブジェクト参照を比較することを覚えておく必要があります。

于 2013-01-31T08:13:26.160 に答える
0

これで試してください:

if(!setPass.getText().toString().equals( conPass.getText().toString()) ){

==またはオブジェクトを使用する場合!=、実際の値ではなく、メモリ参照を比較します。値を比較するには、を使用する必要がありますequals()

それが役に立てば幸い。

于 2013-01-31T08:17:28.840 に答える