2015-11-02 31 views
0

我必须在没有listener.so帮助的情况下才能在同一活动中获得搜索视图查询文本。在同一活动中从工具栏searchview中获取查询字符串?

menu.xml文件

<?xml version="1.0" encoding="utf-8"?> 
    <menu xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:id="@+id/search" 
       android:title="@string/search_title" 
       android:icon="@drawable/ic_search" 
       android:showAsAction="collapseActionView|ifRoom" 
       android:actionViewClass="android.widget.SearchView" /> 
    </menu> 

舱单

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

searchable.xml

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

而且在MainActivty overrided如下

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.options_menu, menu); 

    // Associate searchable configuration with the SearchView 
    SearchManager searchManager = 
      (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    SearchView searchView = 
      (SearchView) menu.findItem(R.id.search).getActionView(); 
    searchView.setSearchableInfo(
      searchManager.getSearchableInfo(getComponentName())); 

    return true; 
} 
    @Override 
    protected void onNewIntent(Intent intent) { 
     setIntent(intent); 
     handleIntent(intent); 
    } 

    private void handleIntent(Intent intent) { 
     if (Intent.ACTION_SEARCH.equals(intent.getAction())) { 
      String query = intent.getStringExtra(SearchManager.QUERY); 
      // Do work using string 
     } 
    } 

仍然是无法得到用户按下搜索键后的搜索查询。什么做错了,如果有人知道,帮帮我。谢谢。

回答

1

您好我有同样的问题这个上课我menu.xml文件

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <item 
     android:id="@+id/search" 
     android:icon="@drawable/ic_search" 
     android:title="@string/search_title" 
     app:actionViewClass="android.support.v7.widget.SearchView" 
     app:showAsAction="collapseActionView|ifRoom" /> 
</menu> 

我改变:

机器人:showAsAction = “collapseActionView | ifRoom” 机器人:actionViewClass =“机器人。 widget.SearchView”

有:

应用:actionViewClass = “android.support.v7.widget.SearchView” 应用:showAsAction = “collapseActionView | ifRoom”

的问题是,我用AppcompatActivity和需要支持V7搜索查看。

希望这会有所帮助。

相关问题