Byr*_*lin 2 eclipse android searchview
试图让searchview在app上运行.
sdk min 17 max 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>
Run Code Online (Sandbox Code Playgroud)
onCreateOptionsMenu
@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;
}
});
}
Run Code Online (Sandbox Code Playgroud)
运行调试并查看搜索菜单项会将操作显示为null.
布局显示将android.support.v7.widget.SearchView显示为未知的xml属性.
我在这个项目中使用的是Eclipse而不是Android Studio.
您是否正在使用Proguard或以某种方式缩小代码?
https://code.google.com/p/android/issues/detail?id=58508
当您使用像Proguard这样的minify方法时,不会直接访问(但通过某种声明方式或反射)的类和方法.为避免这种情况,您需要指示构建专门保留此类/方法.
在这种情况下,可以删除SearchView类,因为不直接调用.
尝试在proguard规则文件中添加此项(在gradle文件上检查getDefaultProguardFile上的正确文件名):
-keep class android.support.v7.widget.SearchView { *; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1245 次 |
| 最近记录: |