我已经实现了过滤我的列表视图项的搜索视图.当我输入任何文本时,它会过滤列表,但是当我退出搜索视图时,它不会返回原始列表项.
public class PlacesListAdapter extends ArrayAdapter<Place> implements
Filterable {
public Context context;
private List<Place> places, orig, itemDetailsrrayList;
private PlaceFilter filter;
public PlacesListAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
}
public PlacesListAdapter(Context context, int resource, List<Place> places) {
super(context, resource, places);
this.context = context;
this.places = places;
itemDetailsrrayList = places;
orig = itemDetailsrrayList;
filter = new PlaceFilter();
// imageLoader = new ImageLoader(context.getApplicationContext());
}
public int getCount() {
return itemDetailsrrayList.size();
}
public Place getItem(int position) {
return itemDetailsrrayList.get(position);
}
public long getItemId(int …Run Code Online (Sandbox Code Playgroud) 如何在打开文本字段的情况下使用SearchView启动活动.通过这种方式,我可以搜索而无需点击望远镜.我正在使用Sherlock Action Bar.
这是我的代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
final SearchView searchView = new SearchView(getSupportActionBar().getThemedContext());
searchView.setQueryHint("Cerca domande");
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
if (query.length() != 0) {
// handle search here
return true;
}
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
if (newText.length()>=3) {
new PostTask().execute(newText);
Util.setSharedPreferences(SearchActivity.this, "lastsearch", newText);
}
return false;
}
});
menu.add("Search")
.setIcon(ic_search_inverse)
.setActionView(searchView)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
listsearch.setOnItemClickListener(this);
return true;
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
我有一个搜索视图,默认情况下设置为默认搜索查询,但我不想要虚拟键盘.在下面的代码中,我试图隐藏onCreateOptionsMenu中的键盘,但仍然可以看到键盘.
imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
MenuItem item = menu.findItem(R.id.menu_search);
item.expandActionView();
mSearchView = (SearchView) item.getActionView();
mSearchView.setIconifiedByDefault(false);
mSearchView.setQuery(query, true);
imm.hideSoftInputFromWindow(mSearchView.getWindowToken(), 0);
Run Code Online (Sandbox Code Playgroud)
我正在使用sherlock搜索视图小部件.任何隐藏虚拟键盘的建议.我做错了什么?
我有一个SearchView在我的ActionBar.我也有一个MainFragmentActivity加载搜索onCreateOptionsMenu.当我交换Fragment进出的SearchView工作正常 - 有一个例外:特别是Fragment我加载的地方:
FragmentTransaction t = fm.beginTransaction();
SherlockListFragment mFrag = new RateReviewFragment();
t.add(R.id.main_frag, mFrag);
t.setCustomAnimations(R.anim.animation_leave, R.anim.animation_enter,
R.anim.animation_leave, R.anim.animation_enter);
t.show(mFrag);
t.addToBackStack(null);
t.commit();
Run Code Online (Sandbox Code Playgroud)
这里唯一的区别是我将它添加到backstack.当我在这个片段显示时尝试在ActionBar中点击SearchView,或者在此片段显示之后的任何片段(在此片段关闭后我弹出后面的堆栈并清除它),然后我得到以下错误.它很难诊断,因为它没有显示在我的代码中.
06-17 10:03:33.668: E/AndroidRuntime(9224): FATAL EXCEPTION: main
06-17 10:03:33.668: E/AndroidRuntime(9224): java.lang.NullPointerException
06-17 10:03:33.668: E/AndroidRuntime(9224): at com.android.internal.widget.ActionBarView$ExpandedActionViewMenuPresenter.expandItemActionView(ActionBarView.java:1470)
06-17 10:03:33.668: E/AndroidRuntime(9224): at com.android.internal.view.menu.MenuBuilder.expandItemActionView(MenuBuilder.java:1233)
06-17 10:03:33.668: E/AndroidRuntime(9224): at com.android.internal.view.menu.MenuItemImpl.expandActionView(MenuItemImpl.java:620)
06-17 10:03:33.668: E/AndroidRuntime(9224): at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:879)
06-17 10:03:33.668: E/AndroidRuntime(9224): at com.android.internal.view.menu.ActionMenuView.invokeItem(ActionMenuView.java:524)
06-17 10:03:33.668: E/AndroidRuntime(9224): at com.android.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:131)
06-17 10:03:33.668: E/AndroidRuntime(9224): at …Run Code Online (Sandbox Code Playgroud) android nullpointerexception android-fragments android-actionbar searchview
你可以帮助我按下按钮时如何禁用searchview吗?我正在尝试这段代码:
searchView.setEnabled(false);
searchView.setFocusableInTouchMode(false);
searchView.clearFocus();
Run Code Online (Sandbox Code Playgroud)
但它似乎无法正常工作.我仍然可以在searchview中输入文字.
谢谢.. :))
I would like to add a custom button to SearchView widget.
Going through source code of search_view layout file I found out that it has a LinearLayout (submit_area) that contains submit button and voice button.
So I added a dynamic button to submit_area. But it doesn't show my dynamically added button because if either submit button or voice button is not enabled then submit_area is invisible. So it doesn't matter if I add anything dynamically.
SearchView searchView = …Run Code Online (Sandbox Code Playgroud) android android-custom-view android-button android-actionbar searchview
编辑对于任何想知道的人,我的问题是我使用android.widget.SearchView而不是android.support.v7.widget.SearchView.我希望这可以帮助其他人解决同样的问题!
原帖
我正在尝试按照官方指南在Android ActionBar中实现SearchView:http://developer.android.com/training/search/setup.html
在找不到问题之后,我终于剥离了最基本的Hello World应用程序,并且惊讶地发现该bug仍然存在于最小的应用程序中!
这是错误:搜索图标出现在菜单栏中,没问题.当我单击它时,搜索栏会扩展(按预期方式),但没有光标,也没有软键盘出现.(我想张贴一张照片,但我的名声太低了:(
这是相关的代码,虽然我只是创建了一个新的Android应用程序并将该项添加到menu/menu_main.xml.MainActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
Run Code Online (Sandbox Code Playgroud)
menu_main.xml
<item android:id="@+id/action_search"
android:icon="@android:drawable/ic_menu_search"
android:title="@android:string/search_go"
app:showAsAction="collapseActionView|ifRoom"
app:actionViewClass="android.widget.SearchView" />
Run Code Online (Sandbox Code Playgroud) 我在操作栏上有一个搜索操作视图.在每个搜索查询中,我调用google图像搜索API来获取JSON请求.我一直在执行搜索时收到此错误.我能够在NetworkImageView中加载图像,但我想了解这个错误.
04-06 14:33:49.913 807-1134 /?E/AmanattoDataUpdaterHelper:无法获得上下文建议.04-06 14:33:49.913 807-1134 /?E/AmanattoDataUpdaterHelper:包名:com.example.gallery 04-06 14:33:49.914 807-1134 /?E/AmanattoDataUpdaterHelper:错误信息:已禁用04-06 14:33:50.954 1062-19581 /?D/GCM:消息类com.google.faai
我有list fragment在BaseActivity和希望实现搜索功能.但action bar compact点击搜索项目按钮时高度会发生变化
见下面的截图

menu.xml文件
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.android.bypeople.uber.BaseActivity" >
<item
android:id="@+id/action_add"
android:icon="@drawable/btn_profile_selector"
android:orderInCategory="100"
android:title="@string/action_add"
android:visible="false"
app:showAsAction="always"/>
<item
android:id="@+id/action_search"
android:icon="@android:drawable/ic_menu_search"
android:title="@string/action_search"
android:visible="false"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="ifRoom"/>
Run Code Online (Sandbox Code Playgroud)
片段中的onCreateOptionsMenu
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu,inflater);
inflater.inflate(R.menu.base, menu);
menu.findItem(R.id.action_add).setVisible(true);
SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
MenuItem searchItem = menu.findItem(R.id.action_search);
searchItem.setVisible(true);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));
searchView.setOnQueryTextListener(queryListener);
queryListener = new OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
@Override
public boolean …Run Code Online (Sandbox Code Playgroud) 我正在使用Firebase-UI的FirebaseRecyclerAdapter.我无法在SearchView中实现过滤器.
我的数据库:
我的问题:
如何使用FirebaseRecyclerAdapter按字符搜索FirebaseDatabase?
(我想按用户名搜索)
我的代码:我用这种方法进行搜索,我的代码有什么问题?
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
Query Q = mAllUsersDatabaseRef.child("User").orderByChild("username").startAt(newText).endAt("~");
FirebaseRecyclerAdapter<User, SearchFeedFragment.AllRegisterUserViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<User, SearchFeedFragment.AllRegisterUserViewHolder>(
User.class, R.layout.row_search_all_users, SearchFeedFragment.AllRegisterUserViewHolder.class, Q) {
@Override
protected void populateViewHolder( SearchFeedFragment.AllRegisterUserViewHolder viewHolder,User model, int position) {
viewHolder.setUserName(model.getUsername());
viewHolder.setUserProfilePic(Common.stringToBitMap(model.getProfilepicurl()));
}
};
mRecyclerViewSearch.setAdapter(firebaseRecyclerAdapter);
return false;
}
});
public static class AllRegisterUserViewHolder extends RecyclerView.ViewHolder {
View mView;
ImageView mImgProfileImage = (ImageView) itemView.findViewById(R.id.iv_searchProfilePic);
TextView mTxtProfileName = (TextView) itemView.findViewById(R.id.txt_searchProfileName);
public …Run Code Online (Sandbox Code Playgroud) firebase searchview recycler-adapter android-recyclerview firebase-realtime-database