gpt4 book ai didi

android - MenuItemCompat.getActionView 总是返回 null

转载 作者:IT老高 更新时间:2023-10-28 12:57:18 24 4
gpt4 key购买 nike

我刚刚实现了 v7 AppCompat 支持库,但 MenuItemCompat.getActionView 在我测试的每个 Android 版本(4.2.2、2.3.4 ... .)

SearchView 显示在操作栏中,但它不响应触摸操作,也不展开以显示其 EditText,就像一个简单的图标。

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

MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
if (searchView != null) {
SearchViewCompat.setOnQueryTextListener(searchView, mOnQueryTextListener);
searchView.setIconifiedByDefault(false);
Log.d(TAG,"SearchView not null");
} else
Log.d(TAG, "SearchView is null");
}
return super.onCreateOptionsMenu(menu);
}

Menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<item android:id="@+id/action_search"
app:showAsAction="always|collapseActionView"
android:icon="@drawable/abc_ic_search"
android:title="@string/action_bar_search"
android:actionViewClass="android.support.v7.widget.SearchView"/>

<item android:id="@+id/action_refresh"
android:icon="@drawable/refresh"
android:title="@string/action_bar_refresh"
app:showAsAction="ifRoom"/>
</menu>

最佳答案

我终于找到了解决办法。

  1. actionViewClass 的命名空间从 android:actionViewClass 更改为 app:actionViewClass

  2. 为当前 Activity 实现 android.support.v7.widget.SearchView.OnQueryTextListener 接口(interface)。

  3. 直接使用setOnQueryTextListener代替SearchViewCompat.setOnQueryTextListener

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

    MenuItem searchItem = menu.findItem(R.id.action_search);
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
    if (searchView != null) {
    searchView.setOnQueryTextListener(this);
    }

    return super.onCreateOptionsMenu(menu);
    }

关于android - MenuItemCompat.getActionView 总是返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18438890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com