RealmデータベースからデータをフェッチするAuotoCompleteTextview(私のMainActivity内)をセットアップしようとしています。だから私は、次のようにアダプタを使用しています:Androidレルム抽象クラスインスタンシエート
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イントロ例にあなたのコメントを見つけました!私はそれを感謝します..良い仕事 –