Sto sviluppando un'applicazione in cui searchview si trova nella barra delle azioni dell'attività principale. E nell'attività principale ci sono 3 frammenti. C'è un listview in ogni frammento. Il problema è che come posso ordinare l'elemento della lista dei frammenti quando searchview è implementato nella barra delle azioni di attività.Come implementare searchview in activity (barra di azione) quando listview esiste nel frammento
Sto usando un semplice adattatore per il cursore e listview con una riga personalizzata in cui ci sono textview e imageview.
Questo è il codice di SearchView nell'attività
SearchManager SManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
MenuItem searchMenuItem = menu.findItem(R.id.action_search);
android.support.v7.widget.SearchView searchViewAction = (android.support.v7.widget.SearchView) MenuItemCompat.getActionView(searchMenuItem);
searchViewAction.setSearchableInfo(SManager.getSearchableInfo(getComponentName()));
searchViewAction.setIconifiedByDefault(true);
android.support.v7.widget.SearchView.OnQueryTextListener textChangeListener = new android.support.v7.widget.SearchView.OnQueryTextListener()
{
@Override
public boolean onQueryTextChange(String newText)
{
// this is your adapter that will be filtered
adapter.getFilter().filter(newText);
System.out.println("on text chnge text: "+newText);
return true;
}
@Override
public boolean onQueryTextSubmit(String query)
{
// this is your adapter that will be filtered
adapter.getFilter().filter(query);
System.out.println("on query submit: "+query);
return true;
}
};
searchViewAction.setOnQueryTextListener(textChangeListener);
E il codice del frammento è
Cursor mCursor = getContacts();
getActivity().startManagingCursor(mCursor);
c_adapter = new SimpleCursorAdapter(getActivity(), R.layout.contact_item, mCursor,
new String[]{ContactsContract.Contacts.DISPLAY_NAME
, ContactsContract.Contacts.PHOTO_THUMBNAIL_URI, ContactsContract.Contacts._ID},
new int[]{R.id.username1, R.id.ivuserpicicon1});
if (c_adapter.getCount() == 0) {
Toast.makeText(getActivity(), "No Items Available", Toast.LENGTH_SHORT).show();
}
listview = (ListView) view.findViewById(R.id.listview);
listview.setAdapter(c_adapter);
listview.setTextFilterEnabled(true);
Come posso implementare SearchView. Ho bisogno di una piccola guida.
quello che hai provato finora. – Gattsu
Se questo è l'aspetto dell'applicazione in questo momento, assicurati di utilizzare AppCompat e il target 22 in modo che gli utenti possano visualizzarlo (il più vicino possibile) in Material Design. –
Sto affrontando lo stesso problema. Ho una vista di ricerca nell'attività principale e contiene un pager di visualizzazione che viene popolato attraverso Fragments usando FragmentStatePagerAdapter. La vista di Liste è contenuta nei frammenti. Devo filtrare la vista elenco di frammenti del scheda attiva utilizzando la visualizzazione Ricerca nell'attività principale. Hai risolto il problema? Per favore aiutami a risolvere il problema. –