2727import android .view .View ;
2828import android .view .ViewGroup ;
2929import android .widget .Filter ;
30- import android .widget .Filterable ;
3130import android .widget .ImageView ;
3231import android .widget .TextView ;
3332
4443import java .util .Locale ;
4544import java .util .concurrent .CopyOnWriteArrayList ;
4645
47- public class ModSearchAdapter extends RecyclerView .Adapter <ModSearchAdapter .ViewHolder > implements Filterable {
46+ public class ModSearchAdapter extends RecyclerView .Adapter <ModSearchAdapter .ViewHolder > {
4847
4948 private Context mContext ;
5049 private String filterString = "" ;
@@ -62,7 +61,6 @@ public void setOnItemClickListener(onItemClickListener onItemClick) {
6261 @ Override
6362 public ViewHolder onCreateViewHolder (ViewGroup viewGroup , int position ) {
6463 mContext = viewGroup .getContext ();
65- isChina = isChina (mContext );
6664 View view = LayoutInflater .from (mContext ).inflate (R .layout .item_search_result , viewGroup , false );
6765 // 创建一个VIewHolder
6866 return new ViewHolder (view );
@@ -106,11 +104,10 @@ public int getItemCount() {
106104 return modsList .size ();
107105 }
108106
109- @ Override
110- public Filter getFilter () {
107+ public Filter getFilter (Context context ) {
111108 // 如果ItemFilter对象为空,那么重写创建一个
112109 if (mFilter == null ) {
113- mFilter = new ItemFilter ();
110+ mFilter = new ItemFilter (context );
114111 }
115112 return mFilter ;
116113 }
@@ -136,13 +133,20 @@ public interface onItemClickListener {
136133
137134
138135 private class ItemFilter extends Filter {
136+ private final Context context ;
137+
138+ ItemFilter (Context context ) {
139+ this .context = context ;
140+ }
141+
139142 private final HashMap <String , Integer > modMap = new HashMap <>();
140143
141144 @ Override
142145 protected FilterResults performFiltering (CharSequence constraint ) {
143146 filterString = constraint .toString ().toLowerCase ();
144- ArrayList <ModData > nlist = new ArrayList <ModData >();
147+ ArrayList <ModData > nlist = new ArrayList <>();
145148 modMap .clear ();
149+ isChina = isChina (context );
146150 if (isChina ) {
147151 for (int i = 0 ; i < filterString .length (); i ++) {
148152 char ch = filterString .charAt (i );
0 commit comments