【问题标题】:android listactivity MenuItemCompat.getActionView always returns nullandroid listactivity MenuItemCompat.getActionView 总是返回 null
【发布时间】:2015-11-15 08:56:10
【问题描述】:

我创建了活动扩展 ListActivity。 在操作栏中,我添加了操作栏搜索视图。

<item android:id="@+id/menu_search"
        android:layout_centerInParent="true"
        android:title="Search"
        android:icon="@drawable/ic_action_search"
        app:showAsAction="always|collapseActionView|withText"
        app:actionViewClass="android.support.v7.widget.SearchView" />

它工作正常,但我的问题是我在方法中找不到搜索视图

public boolean onCreateOptionsMenu(Menu menu) {

    ....

    // SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
       SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.menu_search));

"searchView" 总是返回 null。

但是如果我用这个

android:actionViewClass="android.widget.SearchView

它工作正常。

我的要求是我必须使用 MenuItemCompat 并在同一活动中捕获 onQueryTextSubmit 事件,而不是可搜索的活动。

提前致谢。

【问题讨论】:

    标签: android android-appcompat searchview


    【解决方案1】:

    试试这个代码

    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        searchView = (SearchView) menu.findItem(R.id.search_user)
                .getActionView();
    
    
        searchView.setSearchableInfo(searchManager
                .getSearchableInfo(getComponentName()));
    
    @Override
                public boolean onQueryTextSubmit(final String query) {
    
    -------
    
    
    }
    

    【讨论】:

    • 首先,我在搜索菜单中使用 app:actionViewClass。其次,我的活动由 ListActivity 而不是 ActionBarActivity 扩展,我不允许使用 searchView.setOnQueryTextListener(this);直接。
    • 我试过上面的代码sn-p。它不工作,searchview 为空。
    • 一个直截了当的问题是,我们可以在由 ListActivity 而不是 ActionBarActivity 扩展的 Activity 中使用 MenuItemCompat 吗?
    • 我正在使用 extends AppCompatActivity 它对我有用.. 我不知道如何使用 listactivity .. oi58.tinypic.com/2zrn8k2.jpg
    猜你喜欢
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 2018-01-16
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多