我是android studio的初学者,抱歉我的英语不好。
我在secondActivity中有一个searchView 我做过以下的事情:
1.在gradle中实现v7 AppCompat
支持库,例如 compile 'com.android.support:appcompat-v7:25.3.1'
2.针对当前活动实施的android.support.v7.widget.SearchView.OnQueryTextListener
界面 public class ViewActivity extends AppCompatActivity implements SearchView.OnQueryTextListener
但searchView仍然为null。 以下是我的源代码:
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_search1"
android:icon="@android:drawable/ic_menu_search"
app:showAsAction="always"
app:actionViewClass="android:support.v7.widget.SearchView"
android:title="@string/search_hint" />
</menu>
活动
@Override
public boolean onCreateOptionsMenu(android.view.Menu menu){
getMenuInflater().inflate(R.menu.menu_search, menu);
final MenuItem item = menu.findItem(R.id.action_search1);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(item);
searchView.setQueryHint("Search Name");
searchView.setIconified(false);
searchView.setOnQueryTextListener(this);
return super.onCreateOptionsMenu(menu);
}
答案 0 :(得分:1)
在API级别26.1.0中不推荐使用MenuItemCompat.getActionView(MenuItem项目)。
现在推荐的方法是直接在菜单项上调用getActionView():
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_search, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) searchItem.getActionView();
// ...
}
答案 1 :(得分:0)
我想我找到了解决方案:
在 Menu.xml 中,有
app:actionViewClass="android:support.v7.widget.SearchView"
应该是
app:actionViewClass="android.support.v7.widget.SearchView"