2013-12-18 82 views
0

我想比較值的EditText TextView的與,卻總是得到「不匹配!比較的TextView和EditText上價值

這是錯誤的方式來比較兩個值?

舉一個例子:我已存儲的TextView贏得並進入的EditText相同贏得但得到不匹配 ......

EditText editPassword; 
    String strPassword; 
    TextView lblPassword; 
    String password; 
    String strMatch; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.single_list_item); 

     editPassword = (EditText) findViewById(R.id.editPassword); 

     strPassword = editPassword.getText().toString(); 

     // getting intent data 
     Intent in = getIntent(); 

     password = in.getStringExtra(TAG_PASSWORD); 

     lblPassword = (TextView) findViewById(R.id.password_label); 

     lblPassword.setText(password); 

     strMatch= lblPassword.getText().toString();   

     btnSubmit = (Button) findViewById(R.id.btnSubmit); 
     btnSubmit.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       if(strPassword.equals(strMatch)) 
       { 
        Toast.makeText(getApplicationContext(), "Match !", 
            Toast.LENGTH_LONG).show(); 
        editPassword.setText(null); 
       } 
       else 
       { 
        Toast.makeText(getApplicationContext(), "Does not match !", 
          Toast.LENGTH_LONG).show(); 
       } 
      } 
     });   
    } 
+1

只是一個建議的話。瞭解如何在代碼中設置斷點並在調試模式下運行應用程序。這將允許您在應用程序運行時檢查變量的值,並理解它們不匹配的原因。 –

+0

看到最好的解決方案在這裏.. http://stackoverflow.com/questions/6567527/comparing-two-edittexts-in-android/24733327#24733327 – Nepster

回答

0

將此行加入您的onClick方法中Buttton

strPassword = editPassword.getText().toString(); 

出示您的EditText值是空字符串表示""

+0

但爲什麼onClick(...) – PatharKeSanam

+0

第一次沒有數據輸入editext..after數據輸入後,您將按下按鈕..現在edittext有數據..你越來越.. –

+0

ohhh ...是在onCreate()EditText的初始值爲空,所以它可能如何匹配與其他領域,沒有任何數據到EditText ....無論如何感謝您的幫助 – PatharKeSanam

0

使用您的onClick()事件的內部

strPassword = editPassword.getText().toString(); 

In your case the edit text value is always to be "" 
+0

Edittext默認值永不爲空它的默認值爲空字符串.. –

+0

@kalyanpvs oop yess我同意 –

0
EditText editPassword; 
    String strPassword; 
    TextView lblPassword; 
    String password; 
    String strMatch; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.single_list_item); 

     editPassword = (EditText) findViewById(R.id.editPassword); 



     // getting intent data 
     Intent in = getIntent(); 

     password = in.getStringExtra(TAG_PASSWORD); 

     lblPassword = (TextView) findViewById(R.id.password_label); 

     lblPassword.setText(password); 



     btnSubmit = (Button) findViewById(R.id.btnSubmit); 
     btnSubmit.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       strPassword = editPassword.getText().toString(); 
       strMatch= lblPassword.getText().toString(); 

       if(strPassword.equals(strMatch)) 
       { 
        Toast.makeText(getApplicationContext(), "Match !", 
            Toast.LENGTH_LONG).show(); 
        editPassword.setText(null); 
       } 
       else 
       { 
        Toast.makeText(getApplicationContext(), "Does not match !", 
          Toast.LENGTH_LONG).show(); 
       } 
      } 
     });   
    } 
0

想想你行的順序。您首先在開始時將ONCE分配給strPassword和strMatch,然後更改底層控件(甚至可以通過編輯GUI中的某些內容),但是onClick()方法仍會比較最初存儲在strPassword和strMatch中的值。

嘗試

if(editPassword.getText().equals(lblPassword.getText())) 

更換

if(strPassword.equals(strMatch)) 

(或追加toString()每個,我不是否需要或不toString()記得。

0

嘗試下面的代碼

if(strPassword.trim().equals(strMatch.trim()))