2013-11-20 114 views
-3

我试图从编辑文本框中获取值,然后点击按钮,我想比较edittext框内的文本是否与特定值匹配。如果是这样,应该调用一个新的意图。如果不是,它应该显示一个错误。这里是我的代码点击按钮后...editText框无法正常工作。 Android

 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”(不含双引号),它仍然显示我的错误“错号通”。 Toast清楚地显示我输入了abd,而字符串id现在保存了值“abc”。需要帮助...

+0

使用ID。等于( “ABC”) –

回答

6

试试这个..如果idint像这样使用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方法可以重写 - 这样两个不同的对象仍然可以等于......

3

使用

if(id.equals("abc")) 

,而不是

if(id == "abc")