我正在尝试使用菜单按钮将用户发送到新活动,然后再返回。把它放到上下文中,我有一个基本的计算器,当应用程序打开时运行(现在工作正常),然后我希望用户点击他/她手机上的菜单按钮,(两个按钮应该弹出Home和Tip计算器)当用户点击小费计算器时,它应该加载新的活动TipCalculator。然后,如果再次按下菜单按钮,则应显示相同的两个选项,主页按钮应将它们带回基本计算器。
这是我的Calculator.java代码
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_calculator, menu);
menu.add(Menu.NONE,HOME_MENU_ID,Menu.NONE,"Home");
menu.add(Menu.NONE,SECOND_MENU_ID,Menu.NONE,"Tip Calculator");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch(item.getItemId()){
case HOME_MENU_ID:
Intent main = new Intent(this,Calculator.class);
startActivity(main);
finish();
return true;
case SECOND_MENU_ID:
Intent second = new Intent(this,TipCalculator.class);
startActivity(second);
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
这是TipCalculator.java的代码
public class TipCalculator extends Calculator{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tipcalculator);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_tipcalculator, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
Intent main = new Intent(this,Calculator.class);
startActivity(main);
finish();
return super.onOptionsItemSelected(item);
}
}
菜单显示正常,主页按钮将刷新主页,但小费计算器按钮给我一个强制关闭错误并且崩溃了。