Android item.getActionView()返回null

Android item.getActionView()返回null,android,android-actionbar,Android,Android Actionbar,通过使用这个。。。 我正在将菜单项微调器项导入到普通视图微调器。。。。 要设置适配器,我是这样做的。。。 但在执行此操作时,微调器项将获得空引用。。。 请帮助我如何摆脱这个…这是您应该如何填充微调器的 但这是通过代码实现的方式 public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { MenuItem mSpinnerItem = menu.findItem(R.id.menu_spinner);mS

通过使用这个。。。 我正在将菜单项微调器项导入到普通视图微调器。。。。 要设置适配器,我是这样做的。。。 但在执行此操作时,微调器项将获得空引用。。。
请帮助我如何摆脱这个…

这是您应该如何填充微调器的

但这是通过代码实现的方式

  public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
      MenuItem mSpinnerItem = menu.findItem(R.id.menu_spinner);mSpinnerItem.setVisible(true);
      aSpinner = (Spinner) MenuItemCompat.getActionView(mSpinnerItem);
  }
Spinner-Spinner=(Spinner)findViewById(R.id.Spinner);
//使用字符串数组和默认微调器布局创建ArrayAdapter
ArrayAdapter=ArrayAdapter.createFromResource(此,
R.array.planets_数组,android.R.layout.simple_微调器_项);
//指定当选项列表显示adapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项)时要使用的布局;
//将适配器应用于微调器
旋转器。设置适配器(适配器);
编辑:下面是ActionBar微调器的代码

Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Create an ArrayAdapter using the string array and a   default spinner layout
ArrayAdapter<CharSequence> adapter =      ArrayAdapter.createFromResource(this,
    R.array.planets_array,       android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);
导入android.app.ActionBar;
导入android.app.Fragment;
导入android.os.Bundle;
导入android.support.v4.app.FragmentActivity;
导入android.view.Gravity;
导入android.view.LayoutInflater;
导入android.view.Menu;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.TextView;
公共类MainActivity扩展了FragmentActivity实现
ActionBar.OnNavigationListener{
/**
*表示
*当前下拉位置。
*/
私有静态最终字符串状态\u SELECTED\u NAVIGATION\u ITEM=“SELECTED\u NAVIGATION\u ITEM”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//设置操作栏以显示下拉列表。
最终ActionBar ActionBar=getActionBar();
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setNavigationMode(actionBar.NAVIGATION\u MODE\u列表);
最终字符串[]dropdownValues=getResources().getStringArray(R.array.dropdown);
//指定SpinnerAdapter以填充下拉列表。
ArrayAdapter=新的ArrayAdapter(actionBar.getThemedContext(),
android.R.layout.simple\u微调器\u项,android.R.id.text1,
下拉值);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
//在操作栏中设置下拉列表导航。
setListNavigationCallbacks(适配器,this);
//使用getActionBar().getThemedContext()确保
//文本颜色始终适用于操作栏
//背景而不是活动背景。
}
@凌驾
RestoreInstanceState上的公共无效(Bundle savedInstanceState){
//恢复以前序列化的当前下拉列表位置。
if(savedInstanceState.containsKey(状态\选定\导航\项)){
getActionBar().setSelectedNavigationItem(savedInstanceState.getInt(状态为选中的导航项));
}
}
@凌驾
SaveInstanceState上的公共无效(束超出状态){
//序列化当前下拉列表位置。
outState.putInt(STATE\u SELECTED\u NAVIGATION\u项,getActionBar()
.getSelectedNavigationIndex());
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(R.menu.activity\u主菜单);
返回true;
}
@凌驾
公共布尔值onNavigationItemSelected(整型位置,长id){
//选择给定的下拉项后,将其内容显示在
//容器视图。
Fragment Fragment=新的DummySectionFragment();
Bundle args=新Bundle();
args.putInt(DummySectionFragment.ARG_节号,位置+1);
fragment.setArguments(args);
getFragmentManager().beginTransaction()
.replace(R.id.container,fragment).commit();
返回true;
}
/**
*假碎片
*/
公共静态类DummySectionFragment扩展了片段{
公共静态最终字符串ARG\u SECTION\u NUMBER=“占位符\u text”;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
TextView TextView=新的TextView(getActivity());
textView.setGravity(Gravity.CENTER);
textView.setText(Integer.toString(getArguments().getInt(ARG_SECTION_NUMBER));
返回文本视图;
}
}
} 

这适用于微调器..但不适用于Actionbar微调器或navigationList向下滚动至示例SpinnerAdapter和OnNavigationListener。应该可以走了:)谢谢。。。您能告诉我如何将该微调器访问到微调器类中吗
Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Create an ArrayAdapter using the string array and a   default spinner layout
ArrayAdapter<CharSequence> adapter =      ArrayAdapter.createFromResource(this,
    R.array.planets_array,       android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);
    import android.app.ActionBar;
    import android.app.Fragment;
    import android.os.Bundle;
    import android.support.v4.app.FragmentActivity;
    import android.view.Gravity;
    import android.view.LayoutInflater;
    import android.view.Menu;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.TextView;

    public class MainActivity extends FragmentActivity implements
    ActionBar.OnNavigationListener {


    /**
   * The serialization (saved instance state) Bundle key representing the
   * current dropdown position.
   */

  private static final String STATE_SELECTED_NAVIGATION_ITEM = "selected_navigation_item";

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Set up the action bar to show a dropdown list.
    final ActionBar actionBar = getActionBar();
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

    final String[] dropdownValues = getResources().getStringArray(R.array.dropdown);

    // Specify a SpinnerAdapter to populate the dropdown list.
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(actionBar.getThemedContext(),
        android.R.layout.simple_spinner_item, android.R.id.text1,
        dropdownValues);

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    // Set up the dropdown list navigation in the action bar.
    actionBar.setListNavigationCallbacks(adapter, this);

    // use getActionBar().getThemedContext() to ensure
    // that the text color is always appropriate for the action bar
    // background rather than the activity background.
  }

  @Override
  public void onRestoreInstanceState(Bundle savedInstanceState) {
    // Restore the previously serialized current dropdown position.
    if (savedInstanceState.containsKey(STATE_SELECTED_NAVIGATION_ITEM)) {
      getActionBar().setSelectedNavigationItem(savedInstanceState.getInt(STATE_SELECTED_NAVIGATION_ITEM));
    }
  }

  @Override
  public void onSaveInstanceState(Bundle outState) {
    // Serialize the current dropdown position.
    outState.putInt(STATE_SELECTED_NAVIGATION_ITEM, getActionBar()
        .getSelectedNavigationIndex());
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
  }

  @Override
  public boolean onNavigationItemSelected(int position, long id) {
    // When the given dropdown item is selected, show its contents in the
    // container view.
    Fragment fragment = new DummySectionFragment();
    Bundle args = new Bundle();
    args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, position + 1);
    fragment.setArguments(args);
    getFragmentManager().beginTransaction()
        .replace(R.id.container, fragment).commit();
    return true;
  }


/**
   * A dummy fragment
   */

  public static class DummySectionFragment extends Fragment {

    public static final String ARG_SECTION_NUMBER = "placeholder_text";

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
      TextView textView = new TextView(getActivity());
      textView.setGravity(Gravity.CENTER);
      textView.setText(Integer.toString(getArguments().getInt(ARG_SECTION_NUMBER)));
      return textView;
    }
  }

}