現在我正在使用edittext和listview在android中製作一個程序。我想使用上面的edittext搜索listview項目。將數據填充到列表視圖後,當用戶在edittext中鍵入文本時,listview將滾動到以該文本開始的位置。例如:我有項目:蘋果,應用程序,書籍,男孩,汽車,貓,現金.....當我在edittext中鍵入b然後listview將滾動到書。我使用listview.setSelection(position),但因爲我的數據量超過了30,000,所以當我使用下面的代碼時,它很慢找到數據。 是否有任何解決方案或任何其他方法來做到這一點? 這是我的代碼:Android Listview搜索到特定位置
YOUR_EDITTEXT.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
//LOGIC MAY DIFFER ACCORDING TO YOUR REQUIREMENT..
int POSITION = 0;
for(int i =0;i<list.size();i++) {
if(list.get(i).startsWith(s.toString()))
{
POSITION = i;
break;
}
}
listview.smoothScrollToPosition(POSITION);
}
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
});
檢查這個問題http://stackoverflow.com/questions/14663725/list-view-filter-android –