(내 MainActivity에서) 영역 데이터베이스에서 데이터를 가져 오는 AuotoCompleteTextview를 설정하려고합니다. 그래서 다음과 같은 어댑터를 사용하고 있습니다 :안드로이드 영역 추상 클래스 인스턴스화
public abstract class FilterableRealmBaseAdapter<T extends RealmObject> extends ArrayAdapter<T> implements Filterable {
private final RealmResults<T> mRealmObjectList;
private List<T> mResults;
public FilterableRealmBaseAdapter(Context context, @LayoutRes int layout, RealmResults<T> realmObjectList) {
super(context, layout);
mRealmObjectList = realmObjectList;
}
@Override
public int getCount() {
return mResults == null ? 0 : mResults.size();
}
@Override
public T getItem(int position) {
return mResults == null ? null : mResults.get(position);
}
@Override
public Filter getFilter() {
return new Filter() {
private boolean mHasResults = false;
@Override
protected FilterResults performFiltering(CharSequence constraint) {
// do nothing here because it's executed in another thread and Realm really
// doesn't like treating data from another thread.
final FilterResults results = new FilterResults();
results.count = mHasResults ? 1 : 0; // AutoCompleteTextView already hides dropdown here if count is 0, so correct it.
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
// back on the main thread, we can do the query and notify
if (constraint != null) {
mResults = performRealmFiltering(constraint, mRealmObjectList);
mHasResults = mResults.size() > 0;
notifyDataSetChanged();
}
}
};
}
protected abstract List<T> performRealmFiltering(@NonNull CharSequence constraint, RealmResults<T> results);
}
MainActivity에서 어떻게 어댑터를 설정할 수 있습니까? 나는 그것을 확장하고 추상적 인 방법을 무시함으로써 그것이 끝났다고 생각한다. 하지만 MainActivity는 이미 AppCompatActivity를 확장하고 어댑터 클래스는 이미 ArrayAdapter를 확장하므로 혼란 스럽습니다. 모든 지원에 감사드립니다.
회신 후크 - 그래서 코딩 도대체 내 전화 – EpicPandaForce
:-)에서입니다 휴가입니다 .. 난 그냥 당신이 AndroidHive 자습서를 수정 사람입니다 issue..also 소개 예에 대한 내 댓글을 발견! 고맙습니다. 좋은 일 –