-1

次の Android プログラム コードがあります。正解の「admin」と入力しても動きません。次に、== "admin" とまったく同じ入力をトーストします。しかし、それでもうまくいきません!!! 何かトリックはありますか?助けてください !!どうもありがとう !!

EditText etPassword =(EditText) findViewById(R.id.etPassword);
String t_etPassword =etPassword.getText().toString();

// display the t_etPassword for checking since the "if" does not work
Toast.makeText(getApplicationContext(), "<<" +t_etPassword +">>", Toast.LENGTH_SHORT).show();

if (t_etPassword == "admin") {
    Intent intent = new Intent(getBaseContext(), ContactListActivity.class);
    startActivity(intent);
   } else {
    Toast.makeText(getApplicationContext(), "Un-Authorised Access !!", Toast.LENGTH_SHORT).sho();
    }
  }
});
4

4 に答える 4

3

「==」の代わりに「equals」を使用してみてください。

if ("admin".equals(t_etPassword)) {

説明: Java で文字列を比較するにはどうすればよいですか?

編集:テキストを文字列変数に移動しないでください。不要です。これを試して:

EditText etPassword =(EditText) findViewById(R.id.etPassword);
if ("yourpass".equals(etPassword)) {
    Intent intent = new Intent(getBaseContext(), ContactListActivity.class);
    startActivity(intent);
   } else {
    Toast.makeText(getApplicationContext(), "Un-Authorised Access !!", Toast.LENGTH_SHORT).sho();
    }
  }
});
于 2013-10-18T05:08:04.947 に答える
1
if (t_etPassword == "admin")

上の行をに変更

if (t_etPassword.equals("admin"))

今、あなたは正しい答えを得るでしょう

于 2013-10-18T05:07:58.510 に答える
0

この行を変更してください:

if (t_etPassword == "admin")

if (t_etPassword.equals("admin"))
于 2013-10-18T05:08:11.600 に答える
0

.equals代わりに次を使用する必要があります。

if(t_etPassword.equals("admin"))

==.equals値を比較するために使用されるのに対し、参照の等価性をチェックしています。

于 2013-10-18T05:08:18.603 に答える