【问题标题】:how to insert search view in toolbar? [closed]如何在工具栏中插入搜索视图? [关闭]
【发布时间】:2016-11-25 20:15:00
【问题描述】:

logcat的几行

11-26 01:14:04.752 16902-16902/com.androidbelieve.drawerwithswipetabs W/dalvikvm: VFY: unable to resolve         virtual method 3268: Landroid/support/v4/app/Fragment;.performOptionsMenuClosed     (Landroid/view/Menu;)V
11-26 01:14:04.752 16902-16902/com.androidbelieve.drawerwithswipetabs D/dalvikvm: VFY: replacing opcode 0x6f at 0x04ac
11-26 01:14:07.315 16902-16902/com.androidbelieve.drawerwithswipetabs D/AbsListView: onDetachedFromWindow
11-26 01:14:08.896 16902-16902/com.androidbelieve.drawerwithswipetabs I/AppCompatViewInflater: app:theme is now deprecated. Please move to using android:theme instead.
11-26 01:14:08.936 16902-16902/com.androidbelieve.drawerwithswipetabs D/AbsListView: Get MotionRecognitionManager
11-26 01:14:08.936 16902-16902/com.androidbelieve.drawerwithswipetabs I/AppCompatViewInflater: app:theme is now deprecated. Please move to using android:theme instead.

2-我手机上应用的屏幕截图。

【问题讨论】:

标签: android insert icons toolbar searchview


【解决方案1】:

XML

I - 在 res/xml 目录中保存的 searchable.xml 中创建可搜索的配置。

<?xml version="1.0" encoding="utf-8"?>  
<searchable xmlns:android="http://schemas.android.com/apk/res/android"  
    android:label="@string/app_label"
    android:hint="@string/search_hint" >
</searchable>

II - 在 AndroidManifest.xml 文件中声明您的可搜索活动。

<activity android:name=".SearchActivity">  
   <intent-filter>
       <action android:name="android.intent.action.SEARCH" />
   </intent-filter>
   <meta-data android:name="android.app.searchable"
              android:resource="@xml/searchable"/>
</activity>

III- 在任何 layout.xml 中声明您的 SearchView

<android.support.v7.widget.SearchView  
   android:id="@+id/search"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"/>

造型

我。在 styles.xml 文件中声明自定义样式。

<style name="SearchViewTheme" >  
   <item name="colorControlActivated">@color/amber500</item>
   <item name="colorControlNormal">@color/green500</item>
</style>

二。应用此样式

<android.support.v7.widget.SearchView  
    android:id="@+id/search"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:searchIcon="@drawable/ic_library"
    app:theme="@style/SearchViewTheme"/>

JAVA

I- 在 OnCreate 方法中设置 SearchView

SearchView searchView = (SearchView) findViewById(R.id.search);  
// Sets searchable configuration defined in searchable.xml for this SearchView
SearchManager searchManager =  
    (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 

II- 接收搜索查询

SearchView searchView = (SearchView) findViewById(R.id.search);  
// Sets searchable configuration defined in searchable.xml for this SearchView
SearchManager searchManager =  
    (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 

III- 监听用户输入(获取输入)

searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {  
@Override
public boolean onQueryTextSubmit(String query) {
    searchFor(query);
    return true;
    }

@Override
public boolean onQueryTextChange(String query) {
    filterSearchFor(query);
    return true;
   }
});

【讨论】:

  • 想你,我测试一下
  • 请找出 SearchActivity 文件包含什么?
  • 你的意思是JAVA部分?
  • 是 SearchActivity.java
  • 检查更新的答案,添加了 JAVA 编码
猜你喜欢
  • 1970-01-01
  • 2017-08-16
  • 2018-10-02
  • 2016-10-28
  • 2012-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多