2013-11-10 20 views
0

在我的應用程序中,我試圖檢查一個ArrayList是否包含每次有人輸入時在EditText中輸入的內容。 這裏就是我試圖說:做類型EditText

public boolean onKey(View view, int i, KeyEvent keyEvent) { 
     switch (view.getId()){ 
      case R.id.etssid: 
      if(wifiSSID.contains(etSSID.getText())){ 
       etPASS.setText(wifiSSID.indexOf(etSSID.getText())); 
     } 

     } 
     return false; 
    } 

的問題是它不會繼續執行,如果裏面。如果我刪除,如果這個它的工作原理:

switch (view.getId()){ 
      case R.id.etssid: 
      etPASS.setText("It Works"); 
     } 

現在我已經愚弄了.contains。我在我的類的頂部創建了一個ArrayList並添加了一個元素。不會有干擾,它不起作用。每次有人輸入一個字母時,我能做些什麼來檢查文本是否等於數組列表中的某些內容?

+0

你就不能檢查時的EditText不再等於null? (etSSID!= null) – edwoollard

+0

沒有,因爲我需要它的確切文本來查看它是否在一個數組中 –

+0

是的,但是一旦你知道它不是null,那麼你可以做etSSID.getText()? – edwoollard

回答

0

使用textwacher方法

editext.addTextChangedListener(新TextWatcher(){

   public void beforeTextChanged(CharSequence s, int start, int count, int after) 
       { 

       } 

       public void onTextChanged(CharSequence s, int start, int before, int count) 
       { 
        // Dome something here 
        if(wifiSSID.contains(etSSID.getText())){ 
        etPASS.setText(wifiSSID.indexOf(etSSID.getText())); 

       } 

       public void afterTextChanged(Editable s) 
       { 

       } 
     }); 

這textwatcher方法RNS每次你按任意鍵。,。,ontextchanged方法被調用每次和你可以檢查在任何情況檢查的教程更深入的textwatcher

1

我認爲包含犯規在這裏工作。

相反你必須使用wifiSSID.contentequals或wifiSSID.equals

您可能還需要改變這一點,如果循環條件 etSSID.getText()。toString()方法