菜單文件和SearchView

invalidateOptionsMenu();使原填充的菜單項(xiàng)無(wú)效,當(dāng)用戶再次訪問(wèn)菜單時(shí),再次調(diào)用onCreateOptionsMenu(Menu menu)。如果我們要每次訪問(wèn)都重新對(duì)菜單進(jìn)行處理,使用onPrepareOptionsMenu()來(lái)替代onCreateOptionsMenu()

菜單文件和SearchView:搜索框 的使用
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.actions,menu);
    SearchView searchView = (SearchView) menu.findItem(R.id.app_bar_search).getActionView();
    searchView.setOnQueryTextListener(new QueryTextListener());
    return true;
}
public class QueryTextListener  implements SearchView.OnQueryTextListener{
    @Override
    public boolean onQueryTextSubmit(String query) {
        Toast.makeText(ActionBarUseageActivity.this, "Searching for: " + query + "...", Toast.LENGTH_SHORT).show();
        return true;
    }
    @Override
    public boolean onQueryTextChange(String newText) {
        newText = newText.isEmpty() ? "" : "Query so far: " + newText;
        tvSearchPre.setText(newText);
        return true;
    }
}
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/app_bar_search"
        app:actionViewClass="android.support.v7.widget.SearchView"
        android:icon="@drawable/ic_search_black_24dp"
        android:title="Search"
        app:showAsAction="ifRoom"/>
    <item
        android:id="@+id/app_bar_edit"
        android:icon="@android:drawable/ic_menu_edit"
        android:title="Edit"
        app:showAsAction="always"/>
    <item
        android:id="@+id/app_bar_sort"
        android:icon="@android:drawable/ic_menu_sort_by_size"
        android:title="Sort"
        app:showAsAction="ifRoom">
        <menu>
            <item
                android:id="@+id/action_sort_size"
                android:icon="@android:drawable/ic_menu_sort_by_size"
                android:title="By Size"/>
            <item
                android:id="@+id/action_sort_alpha"
                android:icon="@android:drawable/ic_menu_sort_alphabetically"
                android:title="Alphabetically"/>
        </menu>
    </item>
</menu>
另外的用法
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    //將搜索框加入ActionBar
    MenuItem item = menu.add("Search");
    //設(shè)置SearchView的圖標(biāo)
    item.setIcon(android.R.drawable.ic_menu_search);
    //設(shè)置ActionItem的顯示方式
    item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM|MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
    //使用自定義的SearchView以便更好的控制
    mSearchView = new MySearchView(getActivity());
    //設(shè)置文本改變的監(jiān)聽(tīng)器
    mSearchView.setOnQueryTextListener(this);
    //設(shè)置可刪除文本的監(jiān)聽(tīng)器
    mSearchView.setOnCloseListener(this);
    //設(shè)置圖標(biāo)是否顯示在文本的旁邊,還是作為背景
    mSearchView.setIconifiedByDefault(true);
    //將SearchView作為ActionItem的選項(xiàng)
    item.setActionView(mSearchView);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,287評(píng)論 25 708
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,232評(píng)論 4 61
  • 爸媽今天從老家回來(lái),生活回歸常態(tài),有人可以依靠啦! 到貨的葡萄酒杯子特別漂亮,出乎我的意料,太喜歡了!立馬就倒了一...
    華麗的美麗麗閱讀 173評(píng)論 0 0
  • 有一個(gè)名叫丁的廚師替梁惠王宰牛,手所接觸的地方,肩所靠著的地方,腳所踩著的地方,膝所頂著的地方,都發(fā)出皮骨相離聲,...
    安伶兒閱讀 745評(píng)論 0 4
  • 一次無(wú)能,百次不用。之前覺(jué)得是否過(guò)于苛刻,畢竟人誰(shuí)能無(wú)過(guò),但是如果實(shí)際不計(jì)小錯(cuò)只計(jì)大錯(cuò),也是有其道理所在。...
    2Taeyoung閱讀 201評(píng)論 0 0