- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
试图让搜索 View 在应用程序上工作。
SDK 最少 17 最多 22
在模拟器 api 18 上测试
菜单xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never"/>
<item android:id="@+id/search"
android:icon="@drawable/ic_action_search"
android:title="@string/search_title"
app:showAsAction="ifRoom|collapseActionView"
android:orderInCategory="200"
app:actionViewClass="android.support.v7.widget.SearchView">
</item>
<item android:id="@+id/scan"
android:title="@string/scan"
android:showAsAction="ifRoom"
android:orderInCategory="300">
</item>
</menu>
在创建选项菜单上
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
// Inflate the menu; this adds items to the action bar if it is present.
inflater.inflate(R.menu.material_toolbar, menu);
SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
searchView.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
Log.d(TAG, "onQueryTextSubmit");
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
materialUpdate();
return false;
}
});
}
运行调试并查看搜索菜单项显示操作为空。
布局显示将 android.support.v7.widget.SearchView 显示为未知的 xml 属性。
我在这个项目中使用 Eclipse 而不是 Android Studio。
最佳答案
您是否正在使用 Proguard 或以某种方式缩小您的代码?
https://code.google.com/p/android/issues/detail?id=58508
当您使用像 Proguard 这样的 minify 方法时,您不直接访问(但通过某种声明方式或反射)的类和方法将被删除。为避免这种情况,您需要指示构建专门保留此类/方法。
在这种情况下,可以删除 SearchView 类,因为它不是直接调用的。
尝试将此添加到您的混淆器规则文件中(在您的 gradle 文件中检查正确的文件名,在 getDefaultProguardFile 处):
-keep class android.support.v7.widget.SearchView { *; }
关于android - getActionView 使用 searchview 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32026466/
今天我决定将我的 android 应用从 Java 翻译成 Kotlin! :) 但是当我输入这个时我很惊讶: val searchItem = menu.findItem(R.id.action_s
我正在实现这样的 SearchView: MenuItem search = menu.findItem(R.id.search); SearchView searchView = (Sear
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我有一个简单的 Activity public class TestActivity extends AppCompatActivity { @Override protected v
我正在尝试为我的菜单项实现自定义布局并通过许多解决方案,每当我尝试在为我的 menuItem 的 actionLayout 指定的布局中获取 TextView 时,我都会收到 Null pointer
几个小时以来,我一直在寻找解决方案。我只想在 ActionBar 下添加一个开关(就像在蓝牙设置中一样)。我在这里发现了一个类似的问题,但它可能是旧的。不管怎样,这是我的代码: 主要 Activity
这在几天前还有效,但突然停止了。我只想在某些 fragment 可见时使用操作栏搜索小部件。 现在我无法获取 SearchView,现在 getActionView 总是返回 null。 search
我刚刚实现了 v7 AppCompat 支持库,但 MenuItemCompat.getActionView 在我测试的每个 Android 版本(4.2.2、2.3.4 ... .) SearchV
我正在尝试获取MenuItem的View。 @Override public boolean onOptionsItemSelected(MenuItem item) { View miVie
我正在尝试使用 appcompat 在我的操作栏中添加操作项。我在单击它时添加了搜索操作,我的应用程序因 NullPointerException 而崩溃。在 onCreateOptionsMenu
试图让搜索 View 在应用程序上工作。 SDK 最少 17 最多 22 在模拟器 api 18 上测试 菜单xml
我在我的应用程序中支持低至 API 15,当我尝试从我的菜单中获取 searchView 时,这些用户遇到了崩溃。 下面是我的代码: @Override public void onPrepareOp
我只是想通过代码调整 ActionBar MenuItem 的 View 。 不幸的是,getActionView 似乎总是返回 null! 我的代码: @Override public boolea
我有这个工作正常的菜单 xml: 但是当我开始使用 AppComap v7 时,我在使用 getActionView() 时遇到了 null 异常。 我将菜单布局更改为:
我正在尝试在 Actionbar 上添加搜索栏,但在 getActionVeiw() 上发现了 Nullpointer 异常。请帮助我解决这个问题,我已经提供了所需的详细信息。 我的 MainActi
我是一名优秀的程序员,十分优秀!