2016-11-03 6 views
-1

私はそれを達成するために、Recylerviewからクラスにarraylistを渡したいと思いますか?Recylerviewからクラスにリストを渡す方法

は、ここであなたが実際にperformFiltering法上のArrayListを取得する必要があります私のカスタムフィルタクラス

@Override 
protected FilterResults performFiltering(CharSequence constraint) { 

    FilterResults filterResults=new FilterResults(); 
    if(constraint!=null && constraint.length()>0){ 
     constraint=constraint.toString().toUpperCase(); 
     filterArrayList=new ArrayList<>(); 
     for(int i=0;i<arrayList.size();i++){ 
      if(arrayList.get(i).getId().toUpperCase().contains(constraint)){ 
       filterArrayList.add(arrayList.get(i)); 
      } 
     } 

     filterResults.count=filterArrayList.size(); 
     filterResults.values=filterArrayList; 
    }else{ 

     filterResults.count= arrayList.size(); 
     filterResults.values=arrayList; 
    } 
    return filterResults; 
} 

@Override 
protected void publishResults(CharSequence constraint, FilterResults results) { 
    //Here i want the arraylist from the recylerview without making the arraylist static 
    // adapter.items= (List<OrderPogo>) results.values; 
    adapter.notifyDataSetChanged(); 
} 
+0

ここに私の答えを見てください。カスタムアダプタクラスの中にはfilter()というメソッドがあり、それをアクティビティから呼び出すときにArrayListが与えられます。 – vidulaJ

+0

またはそれを静的にしてください:-D –

+0

私はpublishResultsのarraylistを入れます –

答えて

0

です。リストをフィルタリングした後、最後にあなたが

filterResults.values = yourList; 
filterResults.count = yourList.size(); 

を書き、その後

return filterResults 

することができますあなたは

result.values 

を経由してアクセスするための最良の方法をpublishResults方法でフィルタリングされた結果のリストを取得しますFilterクラス内のarrayListは、RecycleView内にFilterクラスを作成することです。

関連する問題