(SearchView) MenuItemCompat.getActionView(item) 始终为空
(SearchView) MenuItemCompat.getActionView(item) always null
我是android工作室的初学者,抱歉我的英语不好。
我在 secondActivity 中有一个 searchView。
我做了如下的事情:
1.implemented gradle 中的 v7 AppCompat
支持库像这样 compile 'com.android.support:appcompat-v7:25.3.1'
2.implemented android.support.v7.widget.SearchView.OnQueryTextListener
当前 activity 的接口像这样 public class ViewActivity extends AppCompatActivity implements SearchView.OnQueryTextListener
但 searchView 仍然为空。
以下是我的源代码:
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>
在activity
@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);
}
MenuItemCompat.getActionView(MenuItem 项)在 API 级别 26.1.0 中已弃用。
现在推荐的方法是直接在菜单项上调用 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();
// ...
}
我是android工作室的初学者,抱歉我的英语不好。
我在 secondActivity 中有一个 searchView。
我做了如下的事情:
1.implemented gradle 中的 v7 AppCompat
支持库像这样 compile 'com.android.support:appcompat-v7:25.3.1'
2.implemented android.support.v7.widget.SearchView.OnQueryTextListener
当前 activity 的接口像这样 public class ViewActivity extends AppCompatActivity implements SearchView.OnQueryTextListener
但 searchView 仍然为空。 以下是我的源代码:
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>
在activity
@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);
}
MenuItemCompat.getActionView(MenuItem 项)在 API 级别 26.1.0 中已弃用。
现在推荐的方法是直接在菜单项上调用 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();
// ...
}