1 ) Menu.XML
2 ) Main Activity
3 ) Adapter Class
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/folders_button_menu_search" android:icon="@drawable/search_icon" android:background="@color/raw_color" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="always|collapseActionView"/> </menu>
2 ) Main Activity
@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mActivity = getActivity(); mView = inflater.inflate(R.layout.fragment_shared, container, false); setHasOptionsMenu(true); return mView; }
/* Initialization Of Menu */ @Override public void onPrepareOptionsMenu(Menu menu) { menu.clear(); mActivity.getMenuInflater().inflate(R.menu.menu_green_box_folders_dashboard, menu); MenuItem menuSearch = menu.findItem(R.id.folders_button_menu_search).setVisible(true); MenuItem menuGrid=menu.findItem(R.id.folders_button_menu_grid).setVisible(false); MenuItem menuSort=menu.findItem(R.id.folders_button_menu_sort).setVisible(false); SearchView mSearchView = (SearchView) MenuItemCompat.getActionView(menuSearch); search(mSearchView, menuSearch); } /* This Method Will Apply Search Funcnality */ private void search(SearchView searchView, final MenuItem menuSearch) { searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { return false; } @Override public boolean onQueryTextChange(String newText) { final List<SharedFoldersModel> mFolderListModels = filterFolder(mArrSharedFoldersModel, newText); sharedFoldersTagMainAdapter.setFilter(mFolderListModels); final List<SharedFilesModel> mFileListModel = filterFile(mArrSharedFilesModel, newText); sharedFilesTagMainAdapter.setFilter(mFileListModel); return true; } }); } /* This Method Will Search Data Of Folders */ private List<SharedFoldersModel> filterFolder(List<SharedFoldersModel> models, String query) { query = query.toLowerCase(); final List<SharedFoldersModel> filteredModelList = new ArrayList<>(); for (SharedFoldersModel model : models) { // String mFoldersOwnerName = model.getSharedOn().toLowerCase(); String mFoldersName = model.getName().toLowerCase(); if (query != null) { if (mFoldersName.contains(query)) { filteredModelList.add(model); } if (filteredModelList.size() == 0) { mRelativeNoRecordsFolders.setVisibility(View.VISIBLE); mRecyclerViewFolder.setVisibility(View.GONE); } else { mRelativeNoRecordsFolders.setVisibility(View.GONE); mRecyclerViewFolder.setVisibility(View.VISIBLE); } } } return filteredModelList; } private List<SharedFoldersModel> filterFolderStatus(List<SharedFoldersModel> models, String status) { final List<SharedFoldersModel> filteredModelList = new ArrayList<>(); for (SharedFoldersModel model : models) { String mFoldersName = model.getName(); Common.insertLog("Folder Name:::> " + mFoldersName); if (mFoldersName.equalsIgnoreCase(mActivity.getResources().getString(R.string.str_null))) { mFoldersName = mActivity.getResources().getString(R.string.menu_pending); } if (status != null) { if (mFoldersName.equalsIgnoreCase(status)) { filteredModelList.add(model); } } if (filteredModelList.size() == 0) { mRelativeNoRecordsFolders.setVisibility(View.VISIBLE); mRecyclerViewFolder.setVisibility(View.GONE); } else { mRelativeNoRecordsFolders.setVisibility(View.GONE); mRecyclerViewFolder.setVisibility(View.VISIBLE); } } return filteredModelList; }
3 ) Adapter Class
@Overridepublic int getItemViewType(int position) { return mArrSharedFoldersModel.get(position) != null ? mViewItem : 0; } @Overridepublic int getItemCount() { return mArrSharedFoldersModel.size(); } public void setFilter(List<SharedFoldersModel> mSharedFoldersModel) { mArrSharedFoldersModel = new ArrayList<>(); mArrSharedFoldersModel.addAll(mSharedFoldersModel); notifyDataSetChanged(); }
Comments
Post a Comment