Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android spinner上获取空指针_Android_Nullpointerexception_Spinner - Fatal编程技术网

在android spinner上获取空指针

在android spinner上获取空指针,android,nullpointerexception,spinner,Android,Nullpointerexception,Spinner,我试图将微调器实现到操作栏中,但是当我试图设置适配器时,我得到了一个空指针引用。我不知道问题出在哪里,因为我之前在活动中设置它时,它工作正常 这是我的密码 @Override public boolean onCreateOptionsMenu(Menu menu) { if (!mNavigationDrawerFragment.isDrawerOpen()) { // Inflate the menu; this adds items to the action ba

我试图将微调器实现到操作栏中,但是当我试图设置适配器时,我得到了一个空指针引用。我不知道问题出在哪里,因为我之前在活动中设置它时,它工作正常

这是我的密码

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    if (!mNavigationDrawerFragment.isDrawerOpen()) {
        // Inflate the menu; this adds items to the action bar if it is present.if (!mNavigationDrawerFragment.isDrawerOpen()) {
        // Only show items in the action bar relevant to this screen
        // if the drawer is not showing. Otherwise, let the drawer
        // decide what to show in the action bar.
        getMenuInflater().inflate(R.menu.menu_game, menu);
        restoreActionBar();
        Spinner s = (Spinner) menu.findItem(R.id.menu_spinner).getActionView(); // find the spinner
        /*SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this.getSupportActionBar()
                .getThemedContext(), R.array.mile_selections, android.R.layout.simple_spinner_dropdown_item); //  create the adapter from a StringArray*/
        ArrayAdapter<CharSequence> spinnerAdapter = ArrayAdapter.createFromResource(this, R.array.mile_selections, android.R.layout.simple_spinner_item);
        spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        s.setAdapter(spinnerAdapter); // set the adapter
        s.setOnItemSelectedListener(this);
        return true;
    }
    return super.onCreateOptionsMenu(menu);
}

根据其他一些stackoverflow帖子,在调用getActionView之前,需要在菜单对象上调用setActionView

这篇文章的评论如下:

没有,但这让我想到了另一个几乎同名的问题: stackoverflow.com/questions/14286768/…显然getActionView没有 除非先使用setActionView,否则无法正常工作。所以它没有把它捡起来 来自XML–ThomQ 2014年4月10日0:01

这里有一个链接,链接到一篇文章,上面说你必须使用SetActionView


我也有同样的问题。如果遵循上面的注释链,您会发现不需要使用setActionView。您只需正确设置布局XML:

我也有同样的问题,我的错误是我没有正确使用 actionLayout xml属性正确。首先,您必须定义 菜单标记中的自定义命名空间,如下所示 xmlns:app=”http://schemas.android.com/apk/res-auto“然后在菜单上 要使用的项目必须使用actionLayout属性,如下所示: app:actionLayout=“@layout/month\u picker”在本例中为month\u picker 布局是一个微调器。这样做就没有必要使用 setActionView方法Jorge Salas 2015年5月25日0:50

为我工作

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference
        at com.sousheelvunnam.scrimmage.ui.GameActivity.onCreateOptionsMenu(GameActivity.java:138)