2014-10-10 52 views
0

我測試了一些在android上作爲初學者的東西,並試圖抓住一個按鈕被點擊時輸入在EditText中的值,然後將它與我在類中定義的字符串值進行比較,然後使用if(EditText = = stringDefined)else(),但是即使輸入了正確的文本,我的代碼也總是在else部分跳轉,任何幫助表示讚賞。下面是代碼:Android EditText值錯誤?

Button mButton; 
EditText mEdit1; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login); 
    final String user = "admin"; 

    mButton = (Button)findViewById(R.id.BTN_login); 
    mEdit1 = (EditText)findViewById(R.id.editText1); 


    mButton.setOnClickListener(
      new View.OnClickListener() 
      { 
       public void onClick(View view) 
       { 
        String userEntered = mEdit1.getText().toString().trim(); 

        Intent intent = new Intent(Login.this, Success.class); 
        if(userEntered == user){ 
         startActivity(intent); 
        } 

        else{ 
         AlertDialog.Builder errAlert = new AlertDialog.Builder(Login.this); 
         errAlert.setTitle("Wrong Credentials"); 
         errAlert.setMessage("Wrong username"); 
         errAlert.setCancelable(true); 
         errAlert.show(); 
        } 
       } 
      }); 
} 
+0

你在哪裏定義mEdit2?我只看到mEdit1 – aProperFox 2014-10-10 20:56:33

+0

@TylerOlson - 我的代碼中實際上有兩個EditText,並且我刪除了一個以使問題更簡單,我的問題很糟糕 – mrahmat 2014-10-10 21:01:32

回答

0

使用equals方法:

if(userEntered.equals(user)){ 
    startActivity(intent); 
} 
+0

注意:'==運算符'比較對象引用,而不是內容 – 2014-10-10 20:58:10

+0

謝謝你,工作得很好,我一直與C和C#工作,==運算符工作正常,那裏大部分時間不知道在Java theres a .equal函數 – mrahmat 2014-10-10 21:02:37

0

==用於比較原始類型和java.lang.String類的equals()方法進行比較的內容。