Java 无法在具有材质视图的应用程序中获取searchview
我正在开发一个android应用程序,试图在其中添加一个搜索小部件。 这是我的 v21\Style.xmlJava 无法在具有材质视图的应用程序中获取searchview,java,android,Java,Android,我正在开发一个android应用程序,试图在其中添加一个搜索小部件。 这是我的 v21\Style.xml <?xml version="1.0" encoding="utf-8"?> <resources> <!-- <style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar">--> <style name="AppThem
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- <style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar">-->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
ActionBarActivity
是旧设备支持库的一部分。
在使用时,需要使用AppCompat主题
如果您不想支持姜饼设备,您可以简单地调用扩展活动
,因为ActionBar是默认的
请注意,如果在代码中使用,则必须调用getActionbar()
,而不是getSupportActionbar()
。hi,当我说“扩展活动”时,我得到错误“在空对象引用上尝试调用虚拟方法'void android.support.v7.widget.SearchView.setSearchSearchableInfo'”。其次,我没有在我的主要活动中调用getSupportACtionbar。请你解释一下好吗?
public class MainActivity extends ActionBarActivity {
// public class MainActivity extends Activity {
DatabaseHelper dbHeplper;
ListView trial;
ListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// setContentView(R.layout.test);
}
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.my_menu, menu);
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
MenuItem searchActionBarItem = menu.findItem(R.id.searchActionBarItem);
android.support.v7.widget.SearchView searchView = (android.support.v7.widget.SearchView) MenuItemCompat.getActionView(searchActionBarItem);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(true);
return true;
}
}