我目前正在尝试向操作栏添加自定义布局,但一直遇到null指针异常,无法找到解决方法。
这是我的onCreateOptionsMenu
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
ActionBar mActionBar = getActionBar();
LayoutInflater mInflater = LayoutInflater.from(this);
View mCustomView = mInflater.inflate(R.layout.custom_actionbar, null);
TextView mTitleTextView = (TextView) mCustomView.findViewById(R.id.menuText);
mTitleTextView.setText("Insert Title Here");
ImageButton imageButton = (ImageButton) mCustomView.findViewById(R.id.menuPlusButton);
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Start New Course", Toast.LENGTH_LONG).show();
}
});
mActionBar.setDisplayShowHomeEnabled(false);
mActionBar.setDisplayShowTitleEnabled(false);
mActionBar.setCustomView(mCustomView);
mActionBar.setDisplayShowCustomEnabled(true);
return super.onCreateOptionsMenu(menu);
}
该错误似乎发生在mActionBar.setDisplayShowHomeEnabled(false)处,指示
ActionBar mActionBar = getActionBar()
返回null,但我不知道为什么。我扩展了AppCompatActivity并正在运行min API 7。提前致谢。
最佳答案
将getActionBar()
替换为getSupportActionBar()
并更改导入以匹配。