Java 无法在具有材质视图的应用程序中获取searchview

Java 无法在具有材质视图的应用程序中获取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

我正在开发一个android应用程序,试图在其中添加一个搜索小部件。 这是我的 v21\Style.xml

<?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;
    }


}