예, ArrayAdapter와를 구현하여 그것을 할 수 있지만 AutoCompleteTextView
사용하는 getFilter()
를 구현해야합니다. ,
private class FirmAdapter extends ArrayAdapter<Firm> {
private Filter filter;
@Override
public Filter getFilter()
{
if(filter == null){
filter = new Filter(){
int lastlen = 0;
boolean initialized = false;
@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence constraint, FilterResults results)
{
filteredItems = (List<Firm>)results.values;
ArrayAdapter.this.notifyDataSetChanged();
}
@Override
protected FilterResults performFiltering(CharSequence constraint)
{
FilterResults results = new FilterResults();
if(constraint == null || constraint.length() == 0){
results.values = null;
}else{
String val;
Firm obj;
constraint = constraint.toString().toUpperCase();
int newlen = constraint.length();
LinkedList<Firm> filteredResults = new LinkedList<Firm>();
if(newlen < lastlen){
int i = 0, size = ArrayAdapter.super.getCount();
for(i=0;i<size;i++){
obj = ArrayAdapter.super.getItem(i);
val = obj.toString(); // CUSTOMIZE THIS
if(val.contains(constraint)) filteredResults.add(obj);
}
}else{
int i = 0, size = getCount();
for(i=0;i<size;i++){
obj = getItem(i);
val = obj.toString(); // CUSTOMIZE THIS
if(val.contains(constraint)) filteredResults.add(obj);
}
}
lastlen = newlen;
results.values = filteredResults;
}
return results;
}
};
}
return filter;
}
}
}
은 내가이 프로젝트에서이 찢어진, 그래서 내 경우에는 내가 JSONObject
인스턴스의 집합에 필터가 (작업하려면 몇 가지 테스트와 정리가 필요합니다 : 이와 비슷한 무언가가 작동하지 않을 수 있습니다 어디로 Firm
)하지만 그런 시도해보십시오. CUSTOMIZE THIS
의 설명은 AutoCompleteTextView
에 대한 입력을 기반으로 실제로 테스트를 수행하려는 위치입니다.
네, 맞춤 어댑터를 만드는 방법에 대한 자습서를 검색 할 수 있습니다. – Sam
나는 이미 사용자 정의 어댑터를 가지고 있지만, 좋은 Google 튜토리얼에서는 내 Google 검색 결과가 없습니다. –