我正在尝试从edittext框中获取值,并且在单击按钮时,我想比较edittext框内的文本是否与某个值匹配。如果是,则应调用新意图。如果不是,则应显示错误。单击按钮后,这是我的代码...
if(v.getId() == R.id.button1){
id = et1.getText().toString();
Toast toast = Toast.makeText(this, "Value of id is: " + id, Toast.LENGTH_SHORT);
toast.show();
if(id == "abc"){
Intent i= new Intent(Slogin.this, Sales.class);
startActivity(i);
}else{
Toast toast = Toast.makeText(this, "Wrong id pass", Toast.LENGTH_SHORT);
toast.show();
}
现在的问题是,即使我输入“abc”(没有双逗号),它仍然显示错误“错误的id传递”。虽然Toast清楚地表明我已输入abd并且字符串id现在保持值“abc”。需要帮助......
答案 0 :(得分:6)
尝试此操作..如果id
int 使用此id == 5
。但是ID是字符串,您应该使用id.equals("abc")
if(id.equals("abc")){ //Correction is here
Intent i= new Intent(Slogin.this, Sales.class);
startActivity(i);
}else{
Toast toast = Toast.makeText(this, "Wrong id pass", Toast.LENGTH_SHORT);
toast.show();
}
==
总是只比较两个引用(对于非基元,即),即它测试两个操作数是否引用同一个对象。
但是,可以覆盖equals
方法 - 因此两个不同的对象仍然可以相等......
答案 1 :(得分:3)
使用
if(id.equals("abc"))
代替
if(id == "abc")