2013-10-18 140 views
-1

,我有以下的Android程序代码。即使我输入“admin”,这也是行不通的,正确的答案。然后我敬酒我的输入,就像==“管理员”一样。但它仍然不工作!有什么窍门吗?请帮忙 !!非常感谢 !!的“if”语句不工作

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(); 
    } 
    } 
}); 
+3

请与标记你使用的语言你的问题。 – Barmar

+1

是这个java?永远做==字符串比较总是使用字符串库像降低两个字符串,并使用.equals()或.equalsIgnoreCase() –

+0

''==测试参考平等。 '.equals()'测试值是否相等。 That's为什么用.equals() –

回答

1
if (t_etPassword == "admin") 

改变上述行来

if (t_etPassword.equals("admin")) 

现在你会得到正确的答案

3

尝试使用 '等于',而不是 '=='。

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

说明:How do I compare strings in 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(); 
    } 
    } 
}); 
+1

+1但是为了避免可能NPE,你可能要考虑使用' “管理员” .equals(t_etPassword)' – MadProgrammer

+0

@MadProgrammer指正,谢谢。 – Dancger

0

请改变这一行:

if (t_etPassword == "admin") 

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

您应该使用.equals代替:

if(t_etPassword.equals("admin")) 

==是检查参考平等,而.equals用于比较值。