更新在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);
}
感谢reply..I无法关闭下拉每个过滤器performed.I只需要滚动列表顶部上没有解雇下拉 –
@MaheshAmbekar退房的编辑进行过滤。正是你想要的我猜 –