国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android頂部(toolbar)搜索框實現的實例詳解

2019-12-12 02:02:34
字體:
來源:轉載
供稿:網友

Android頂部(toolbar)搜索框實現的實例詳解

本文介紹兩種SearchView的使用情況,一種是輸入框和搜索結果不在一個activity中,另一種是在一個activity中。
首先編寫toolbar的布局文件 toolbar中圖標在menu文件下定義一個布局文件實現

示例代碼:

<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=".MainActivity" >  <item    android:id="@+id/ab_search"    android:orderInCategory="60"    android:title="action_search"    app:actionViewClass="android.support.v7.widget.SearchView"    app:showAsAction="ifRoom"/></menu>

menu下只有item和group兩種子節點,這里不具體介紹,actionViewClass的作用是讓這個item的顯示形式,我們這里使用自帶的搜索框。

然后在你xml文件下編寫searchable.xml文件

<?xml version="1.0" encoding="utf-8"?><searchable xmlns:android="http://schemas.android.com/apk/res/android"  android:label="@string/app_name"  android:imeOptions="actionSearch"  android:hint="姓名" />

imeOptions作用是鍵盤的回車鍵變成了搜索,這里還有其他選項,不做介紹。actionSearch是將回車鍵顯示為搜索鍵。

然后在activity中實現,這里一定要先實現toolbar,不在貼出代碼,

然后重寫這個方法,得到SearchView

 @Override  public boolean onCreateOptionsMenu(Menu menu) {    getMenuInflater().inflate(R.menu.toolbar_menu_friend, menu);    SearchManager searchManager =        (SearchManager) getSystemService(Context.SEARCH_SERVICE);    SearchView searchView =        (SearchView) menu.findItem(R.id.ab_search).getActionView();    searchView.setSearchableInfo(        searchManager.getSearchableInfo(getComponentName()));    return true;  }

然后在新建一個activity,為處理搜索結果的界面,命名為SearchResultActivity。

String SearchContent = getIntent().getStringExtra(SearchManager.QUERY); 

這樣SearchContent里面就是你在搜索框中輸入的內容。

接下來在配置文件中對activity進行配置

<activity android:name=".activity.MainActivity">      <intent-filter>        <action android:name="android.intent.action.MAIN" />        <category android:name="android.intent.category.LAUNCHER" />      </intent-filter>      <meta-data android:name="android.app.default_searchable"        android:value=".activity.SearchResultActivity"/>    </activity>-----------------------分割線---------------------------<activity android:name=".activity.SearchResultActivity"      android:parentActivityName=".activity.MainActivity">      <meta-data        android:name="android.support.PARENT_ACTIVITY"        android:value=".activity.MainActivity" />      <!-- meta tag and intent filter go into results activity -->      <meta-data android:name="android.app.searchable"        android:resource="@xml/searchable" />      <intent-filter>        <action android:name="android.intent.action.SEARCH" />      </intent-filter>    </activity>

以上是搜索框和搜索結果不在一個activity中。

如果在一個activity中,方法都不變,只是在配置文件中具有搜索框的acitivity中配置這兩個就行了

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

效果圖:

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁远县| 原平市| 丹寨县| 托克托县| 清水河县| 庆元县| 响水县| 平远县| 繁昌县| 文登市| 嘉峪关市| 扎鲁特旗| 台安县| 金坛市| 尉犁县| 金平| 柳河县| 龙海市| 栾川县| 报价| 斗六市| 株洲市| 海城市| 双鸭山市| 依安县| 赤峰市| 西宁市| 四平市| 云安县| 鲁甸县| 银川市| 凤城市| 海口市| 仁化县| 什邡市| 天长市| 辽中县| 崇州市| 贺兰县| 南漳县| 闻喜县|