Sha*_*hmi 5 android android-listview android-fragments
我正在开发一个应用程序,其中searchview位于主要活动的操作栏中.在主要活动中有3个片段.每个片段都有一个列表视图.问题是,当在activity的操作栏中实现searchview时,如何对片段的列表项进行排序.
我正在使用简单的游标适配器和listview,其中有自定义行,其中有textview和imageview.

这是活动中的searchview代码
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);
Run Code Online (Sandbox Code Playgroud)
而片段的代码是
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);
Run Code Online (Sandbox Code Playgroud)
我该如何实现searchview.我需要的指导很少.
与片段到活动的通信相比,活动到片段的通信相当简单。您可以查看以下链接了解这两种通信类型
http://developer.android.com/training/basics/fragments/communicating.html#Deliver
在您的活动中,您可以获得包含 ListView 的片段实例并调用所有搜索和排序操作。
假设您已添加
android:actionViewClass="android.widget.SearchView"
Run Code Online (Sandbox Code Playgroud)
对于菜单布局文件中的搜索菜单项,您可以在 Activity 的 onCreateOptionsMenu 中添加
MenuItem searchItem = menu.findItem(R.id.your_search_menu_item);
SearchView actionSearchView = (SearchView) searchItem.getActionView();
actionSearchView.setIconifiedByDefault(false);
actionSearchView.setOnQueryTextListener(//Set up your OnQueryTextListener here);
Run Code Online (Sandbox Code Playgroud)
在 OnQueryTextListener 的 onQueryTextChange 方法中,您可以调用片段方法进行搜索和排序。
| 归档时间: |
|
| 查看次数: |
2693 次 |
| 最近记录: |