【发布时间】:2016-01-27 22:49:30
【问题描述】:
同事们,MainActivity 类派生自 FragmentActivity,由于某种原因,活动的 onCreateOptionsMenu() 没有被调用。我在onCreate() 中的第一个断点正在被触发,在onCreateOptionsMenu() 中的第二个断点没有被触发。
import android.support.v4.app.FragmentActivity;
public class MainActivity extends FragmentActivity {
private FragmentPagerAdapter m_fragmentPagerAdapter;
private ViewPager m_viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Create the adapter that will return a fragment for each of the primary sections of the activity.
m_fragmentPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
m_viewPager = (ViewPager) findViewById(R.id.container);
m_viewPager.setAdapter(m_fragmentPagerAdapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu); // Inflate the menu; this adds items to the action bar if it is present.
return true;
}
}
此应用中的片段没有自己的菜单。属于活动的一个菜单“涵盖”了所有内容。
主题是 Holo.Light
是什么阻止了onCreateOptionsMenu() 被调用?我错过了什么?
【问题讨论】:
-
您是否尝试过扩展
AppCompatActivity?这将添加一个显示菜单的工具栏。请注意,在这种情况下,您可能需要更改主题。 -
@George 我知道我只针对较新版本的 Android(从 4.3 开始)。据我了解,AppCompat 使旧版本的 API 能够执行新版本中引入的操作。然而,我觉得 AppCompat 是一个我应该可以不用的补丁。 (当然,我对 AppCompat 的历史和用途的理解可能是错误的。)不过,将基类更改为
AppCompatActivity确实带来了菜单。