第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在RealmRecyclerViewAdapter中實(shí)現(xiàn)可過濾

如何在RealmRecyclerViewAdapter中實(shí)現(xiàn)可過濾

我正在使用RealmRecyclerViewAdapter。我的問題是實(shí)施Filterable不起作用。這是代碼: private class AirportAdapter extends RealmRecyclerViewAdapter<AirportR,RecyclerView.ViewHolder> implements Filterable{    Context context;    OrderedRealmCollection<AirportR>listAirports;    public AirportAdapter(Context activity, OrderedRealmCollection<AirportR>airports)    {        super(activity,airports, true);        this.context = activity;        this.listAirports = airports;    }    @Override    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)    {        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.airport_show, parent,false);        AirportClass holder = new AirportClass(view);        return holder;    }    @Override    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position)    {       AirportR airportR = listAirports.get(position);        AirportClass mHolder = (AirportClass)holder;        mHolder.country.setText(airportR.getIsoCountry());        mHolder.name.setText(airportR.getName());    }    public Filter getFilter()    {       AirportFilter filter = new AirportFilter(this, listAirports);        return filter;    }    private class AirportFilter extends Filter    {        private final AirportAdapter adapter;        OrderedRealmCollection<AirportR>originalList;        OrderedRealmCollection<AirportR>filteredList;        private AirportFilter(AirportAdapter adapter, OrderedRealmCollection<AirportR> originalList)        {            super();            this.adapter = adapter;            this.originalList = originalList;        }而我給了錯(cuò)誤:java.lang.UnsupportedOperationException: This method is not supported by RealmResults.                  at io.realm.RealmResults.addAll(RealmResults.java:710)                  at com.example.matteo.downloadairports.fragment.ListAirportFragment$AirportAdapter$AirportFilter.publishResults過濾并更新適配器后如何保存結(jié)果?謝謝
查看完整描述

2 回答

?
繁星淼淼

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊

將過濾器移至publishResults并使用UI線程Realm的查詢來評(píng)估新結(jié)果。


private class AirportAdapter

        extends RealmRecyclerViewAdapter<AirportR, RecyclerView.ViewHolder>

        implements Filterable {

    Realm realm;


    public AirportAdapter(Context context, Realm realm, OrderedRealmCollection<AirportR> airports) {

        super(context, airports, true);

        this.realm = realm;

    }


    @Override

    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.airport_show, parent, false);

        AirportClass holder = new AirportClass(view);

        return holder;

    }


    @Override

    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {

        AirportR airportR = getData().get(position);


        AirportClass mHolder = (AirportClass) holder;

        mHolder.bind(airportR);

    }


    public void filterResults(String text) {

        text = text == null ? null : text.toLowerCase().trim();

        RealmQuery<AirportR> query = realm.where(AirportR.class);

        if(!(text == null || "".equals(text))) {

            query.contains("fieldToQueryBy", text, Case.INSENSITIVE) // TODO: change field

        }

        updateData(query.findAllAsync());

    }


    public Filter getFilter() {

        AirportFilter filter = new AirportFilter(this);

        return filter;

    }


    private class AirportFilter

            extends Filter {

        private final AirportAdapter adapter;


        private AirportFilter(AirportAdapter adapter) {

            super();

            this.adapter = adapter;

        }


        @Override

        protected FilterResults performFiltering(CharSequence constraint) {

            return new FilterResults();

        }


        @Override

        protected void publishResults(CharSequence constraint, FilterResults results) {

            adapter.filterResults(constraint.toString());

        }

    }


    private class AirportClass

            extends RecyclerView.ViewHolder {

        TextView name, country;

        ImageView image;


        public AirportClass(View itemView) {

            super(itemView);


            name = (TextView) itemView.findViewById(R.id.name);

            country = (TextView) itemView.findViewById(R.id.country);

            image = (ImageView) itemView.findViewById(R.id.imageView);

        }


        public void bind(AirportR airportR) {            

            country.setText(airportR.getIsoCountry());

            name.setText(airportR.getName());

        }

    }

}


查看完整回答
反對(duì) 回復(fù) 2019-11-20
  • 2 回答
  • 0 關(guān)注
  • 551 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)