更新在textchange的自动完成文本视图中的建议列表索引

问题描述:

我使用自动完成textview与arraylist值[aaa0,aaa1,... aaa100,aab0,aab1,...,aab100],我输入值'aa'和滚动直到下10个值ie.'aa10'然后我输入值'aab'建议列表从第10个值开始,即'aab10'。 我必须向上滚动才能看到第一个值,即'aab0'。我希望在更改搜索文本时显示建议列表的第一个值。 suggestion list screenshot更新在textchange的自动完成文本视图中的建议列表索引

您需要延长AutoCompleteTextView 类和重写onFilterComplete方法 ,你必须再次下调解雇,并显示下降刷新列表视图。

此外,我会建议,而不是延长AutoCompleteTextView 延长android.support.v7.widget.AppCompatAutoCompleteTextView 的明显更好的支持

这里的代码

package your.package.name; 
import android.content.Context; 
import android.util.AttributeSet; 
import android.support.v7.widget.*; 

public class CustomAutoCompleteTextView extends AppCompatAutoCompleteTextView { 

     public CustomAutoCompleteTextView(Context context) { 
      super(context); 
     } 

     public CustomAutoCompleteTextView(Context context, AttributeSet attrs) { 
      super(context, attrs); 
     } 

     public CustomAutoCompleteTextView(Context context, AttributeSet attrs, int defStyleAttr) { 
      super(context, attrs, defStyleAttr); 
     } 

     @Override 
     public void onFilterComplete(int count) { 
      super.onFilterComplete(count); 
      //show and dismiss the drop down to refresh the list in it 
      this.dismissDropDown(); 
      this.showDropDown(); 
     } 
} 

编辑

也可以使用AutoCompleteTextView.setListSelection()方法滚动到顶部。 而不是解散并显示更有效的每个过滤器 上的DropDown。

 @Override 
     public void onFilterComplete(int count) { 
      super.onFilterComplete(count); 
      //set list selection to 0 
      if(getListSelection() != 0) 
       this.setListSelection(0); 
     } 
+0

感谢reply..I无法关闭下拉每个过滤器performed.I只需要滚动列表顶部上没有解雇下拉 –

+0

@MaheshAmbekar退房的编辑进行过滤。正是你想要的我猜 –