Articles of searchview

将SearchView与AppCompat一起使用时出现空指针exception

今天我花时间迁移到AppCompat库。 除了我的SearchView,我已经成功设置了所有内容。 之前,它运行正常,但现在我在使用代码时不断收到nullPointerException searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 我到处寻找尝试为我的问题find解决方案,但我找不到任何地方(我试过的那些不起作用)。 任何指导都将受到赞赏,ty。 这是我打电话的地方: @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); MenuItem searchItem = menu.findItem(R.id.search); SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView) MenuItemCompat .getActionView(searchItem); searchView.setSearchableInfo(searchManager .getSearchableInfo(getComponentName())); return super.onCreateOptionsMenu(menu); } 这是菜单XML文件: > 表现: logcat的: FATAL EXCEPTION: main java.lang.NullPointerException at com.stack.overflow.MainActivity.onCreateOptionsMenu(MainActivity.java:805) at android.app.Activity.onCreatePanelMenu(Activity.java:2476) at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:224) at android.support.v7.app.ActionBarActivity.superOnCreatePanelMenu(ActionBarActivity.java:232) at android.support.v7.app.ActionBarActivityDelegateICS.onCreatePanelMenu(ActionBarActivityDelegateICS.java:146) at android.support.v7.app.ActionBarActivity.onCreatePanelMenu(ActionBarActivity.java:199) […]

Honeycomb 3.2上的android searchview setOnActionExpandListener

我正在使用android-support-v4开发Android 3.2及更高版本的应用程序。 当扩展操作栏中的SearchView以及何时折叠时,我需要为“拦截”实现OnActionExpandListener 。 我的Android 4.0及更高版本的代码没问题,但对于3.2没有。 menu.xml文件 MyActivity.java @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.reader, menu); final MenuItem searchMI = menu.findItem(R.id.menu_search); if(searchView == null) { //searchView = (SearchView) searchMI.getActionView(); searchView = (SearchView) MenuItemCompat.getActionView(searchMI); searchView.setOnQueryTextListener(this); searchView.setOnSuggestionListener(this); searchView.setOnCloseListener(new OnCloseListener() { @Override public boolean onClose() { //some code return false; } }); } int currentapiVersion = android.os.Build.VERSION.SDK_INT; if […]

如何在searchView中收听键盘搜索按钮

我有一个SearchView。 当用户点击键盘搜索按钮时,我需要进行服务器调用。 听众的代码是什么样的? 我想我必须使用OnClickListener。 但是知道它是搜索按钮的内部代码,我不知道如何确定。

有没有更好的方法来恢复SearchView状态?

我的ActionBar有一个可折叠的SearchView 。 执行搜索后,将过滤关联的ListView以仅显示匹配的项目。 在此状态期间, SearchView仍会展开并显示搜索字符串。 如果用户关闭了SearchView ,我会删除filter。 我想恢复搜索状态,例如,在配置更改时,或者当我从另一个活动返回活动时,活动是否被销毁。 我在onRestoreInstanceState()恢复查询字符串,如果我在onCreateOptionsMenu()find一个查询字符串,我调用 searchView.setQuery(query, true); 以便再次执行查询。 事实certificate,这比立即在onRestoreInstanceState()应用查询filter更好。 对于后者,列表很快显示为未过滤,然后再次应用查询。 使用setQuery()这不会发生。 问题:执行查询并过滤列表,但搜索视图仍保持折叠状态。 因此,用户无法使用搜索视图删除filter或应用其他查询。 在onCreateOptionsMenu()我可以确定搜索项和搜索视图存在,因此我可以调用searchItem.expandActionView() 。 奇怪的是,只有这样才能真正扩展ActionView – 调用setIconified(false)不会扩展视图,即使连续两次调用它也不会。 如果我在调用setQuery() expandActionView()之前使用expandActionView() ,则会打开SearchView并显示文本(否则expandActionView()清空SearchView )。 不幸的是, expandActionView()有副作用:还会显示建议列表并打开键盘。 我可以使用searchView.clearFocus()隐藏键盘。 所以剩下的问题是建议清单。 如何在具有文本的SearchView上关闭打开的建议列表? 我想知道是否有更好的方法来恢复没有那么多副作用的动作栏中的搜索视图。

动作栏中的中心SearchView

如何将ActionView(特别是SearchView)置于Action Bar的中心? 如Google图书应用中所示: Google图书应用SearchView http://img.androidcookie.com/android/2z909is.png 我当前的布局设置( search_layout.xml ) : 我的Action Bar XML文件( menu.xml ) : 有没有办法模仿Books的SearchView的行为?

SearchView删除蓝色焦点线并在某个位置显示光标

我一直在尝试删除SearchView中的蓝色焦点线。我将它投射到AutoCompleteTextView,以便我可以为searchView使用自定义图标。 int id = searchView.getContext().getResources().getIdentifier(“android:id/search_src_text”, null, null); searchtextView = (AutoCompleteTextView) searchView.findViewById(id); 我试过用 searchtextView.setBackGroundColor(0) 并在我的xml中手动将背景设置为#0000000,但我仍然可以看到底部的蓝线。 我面临的第二个问题是光标最初没有显示在文本上。我想在searchview中输入任何内容时显示光标。我尝试使用编程方式进行操作 if (searchtextView.getText().toString().length() >= 0) { searchtextView.setSelection(searchtextView.getText().toString().length()); } 即使在searchView内部没有文本也应该显示光标。我认为它与焦点有关,因为当我输入2-3个字符时,光标会自动显示。

在操作栏中设置android搜索视图和下拉列表的样式

在我的应用中,我有一个显示搜索建议的搜索视图。 我希望下拉/微调器和文本是一种特殊的颜色。 目前我唯一能做的改变是通过以下方式输入文本的文字颜色: @color/white @null @color/myBackgroundColor 该应用当前显示的搜索结果结果如下: 我想知道的是如何更改searchHint颜色,下拉背景和下拉项目文本颜色等部分? 我的目标是API 19+

Android – ActionBar SearchView建议使用简单的String数组

我想实现一个具有建议function的ActionBar搜索小工具。 我已经在我的ORMLite数据库中存储了一个字符串数组,用于建议。 如何在不创建类加载的情况下执行此操作(Provider,Searchable ……!)?

如何在搜索时删除android searchviewpopup文本?

我已经实现了动作栏SearchView,它工作正常,但在屏幕的底部显示一个浮动文本popup窗口。 查看截图: ListView Java类: @Override public boolean onQueryTextChange(String newText) { if (TextUtils.isEmpty(newText)) { mListView.clearTextFilter(); } else { // EventAdapterView ca = (EventAdapterView)mListView.getAdapter(); // ca.getFilter().filter(newText.toString()); // Filter lFilter = mDataAdapter.getFilter(); // lFilter.filter(“”); // following line was causing the ugly popup window. mListView.setFilterText(newText.toString()); // EventAdapterView ca = (EventAdapterView)mListView.getAdapter(); // ca.getFilter().filter(newText.toString()); } return true; } @Override public boolean […]

片段替换触发searchView上的onQueryTextChange

这是我浏览我的应用程序的方式: 用列表打开片段 按searchview中输入的文本过滤列表 点击listitem(列表片段被细节片段替换) 向后导航(详细信息片段被列表片段替换) 当我从list-detail-fragment导航时,我希望将searchview的当前filter保存在字符串variables中。 我在执行onQueryTextChange时存储searchview的值。 问题:我无法存储实际的filter值,因为当我从列表导航到详细信息时会调用onQueryTextChange,因为有些东西清除了searchview的文本。 // … searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String s) { return false; } @Override public boolean onQueryTextChange(String s) { searchReceived(s); return true; } }); // … public void searchReceived(String searchQuery) { this.stateHolder.searchQuery = searchQuery; // more code… } 当我想在导航回来时恢复filter时,它只是使用空字符串过滤,因为错误的值存储在this.stateHolder.searchQuery 。 堆栈: onQueryTextChange():139, EmployeeListFragment$1 {com.example.exampleapp.fragment} onTextChanged():1153, SearchView […]