2011-09-30 65 views
0

我有一个列表视图,并在上方显示一个编辑文本。在编辑文本中,数据从列表视图中搜索并显示在编辑文本中。在列表视图中,一些数据是两个单词。例如,列表视图包含“汽车”,“红色汽车”,“蓝色汽车”。现在,如果我在编辑文本中键入c,则只显示汽车,而不显示其他两个。如何在c键入的情况下搜索上述三个。这里是我的代码...从编辑文本中的列表视图中过滤文本

@Override 
     public void onTextChanged(CharSequence s, int start, int before,  int count) { 
      wordlength = ed.getText().length(); 
      editsort.clear(); 
      for(int i=0;i<word.length;i++){ 
       if(wordlength<=word[i].length()){ 
        if(ed.getText().toString().equalsIgnoreCase((String) word[i].subSequence(0, wordlength))){ 
        editsort.add(word[i]); 

        } 
       } 
      } 

谢谢...

回答

1

如果word是要搜索的字符串数组:

 public void onTextChanged(CharSequence s, int start, int before, int count) { 
      String searchFor = ed.getText().toString(); 
      editsort.clear(); 
      for(String whole : word){ 
       for(String part : whole.split(" ")) { 
        if(part.startsWith(searchFor)); 
        editsort.add(whole); 
       } 
      } 
     } 
+0

感谢您的答复。我试过像你说的。现在它显示包含该字母的所有字符串。例如,如果我现在键入c,它将过滤所有包含c的数据。然后,如果我键入ca它会显示所有包含ca的字符串。但在我的情况下,如果ca是type ca,它应该显示前两个字母为car的数据和包含ca在“blue car”之后的数据。它不应该显示这些字母是否会出现在单词的中间。希望我已经解释清楚。 – rose

+0

我已编辑以适合您的解释。 – kaspermoerch

+0

我正在尝试做同样的事情。你能告诉我如何根据edittext中输入的字母来搜索列表吗?什么是editsort这里? – Namratha

相关问题