![](/img/trans.png)
[英]How can filter recyclerview in selected viewpager fragment on search?
[英]How to search and filter for a text in a fragment
我能夠顯示搜索欄,但無法搜索任何內容,當我在搜索欄中鍵入任何內容並按Enter時,它不會過濾或顯示結果,一切都保持原樣,請告訴我這是怎么回事我的代碼,以及為什么沒有得到任何結果,在此先感謝。
public class MyJobsFragment extends Fragment {
MyJobsAdapter adapter;
RecyclerView recyclerView;
public MyJobsFragment() {
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
setHasOptionsMenu(true);
View view = inflater.inflate(R.layout.fragment_my_jobs, container,
false);
ArrayList<MyJobsModel> data = new ArrayList<>();
data.add(new MyJobsModel("Android Developer", "Vee Live", ""));
data.add(new MyJobsModel("Android Developer", "Vee Live", ""));
data.add(new MyJobsModel("Android Developer", "Vee Live", ""));
data.add(new MyJobsModel("Android Developer", "Vee Live", ""));
data.add(new MyJobsModel("Android Developer", "Vee Live", ""));
data.add(new MyJobsModel("Android Developer", "Vee Live", ""));
data.add(new MyJobsModel("Android Developer", "Vee Live", ""));
recyclerView = (RecyclerView) view.findViewById(R.id.recyclerview);
adapter = new MyJobsAdapter(data, getContext());
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
RecyclerView.ItemAnimator itemAnimator = new DefaultItemAnimator();
itemAnimator.setAddDuration(1000);
itemAnimator.setRemoveDuration(1000);
recyclerView.setItemAnimator(itemAnimator);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.search_view, menu);
MenuItem item = menu.findItem(R.id.menuSearch);
final SearchView searchView = new SearchView(((Jobs)
getActivity()).getSupportActionBar().getThemedContext());
MenuItemCompat.setShowAsAction(item,
MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW |
MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
MenuItemCompat.setActionView(item, searchView);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
}
}
您沒有在onQueryTextSubmit
上過濾recyclerview的數據
提交文本后,您需要過濾ArrayList並刷新recyclerview的數據。
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
ArrayList<MyJobsModel> filteredData = new ArrayList<MyJobsModel>();
for (MyJobsModel myJobsModel : data) {
if (myJobsModel.getName().equals(query)) {
filteredData.add(myJobsModel);
}
}
adapter = new MyJobsAdapter(data, getContext());
recyclerView.setAdapter(adapter);
return true ;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.