Android 如何从单个菜单选项启动新活动
您好,我正在尝试用一个菜单选项(R.id.waypointEditId)打开一个新的活动(GPSWptsEdit.class),但是我对代码没有太多的运气。每次我在eclipse中以调试模式运行GPSTrialActivity并单击菜单选项时,我会在eclispe中弹出一个名为“确认透视开关”的窗口,当我单击“是”时,defualt instrumentation选项卡会显示“未找到源代码-JAR文件C:\Program Files(x86)\Android\Android sdk\platfoms\Android-8\Android.JAR没有附加源代码” 如果有人能提供一些建议,我将不胜感激。以下是我一直在使用的代码:Android 如何从单个菜单选项启动新活动,android,menuitem,Android,Menuitem,您好,我正在尝试用一个菜单选项(R.id.waypointEditId)打开一个新的活动(GPSWptsEdit.class),但是我对代码没有太多的运气。每次我在eclipse中以调试模式运行GPSTrialActivity并单击菜单选项时,我会在eclispe中弹出一个名为“确认透视开关”的窗口,当我单击“是”时,defualt instrumentation选项卡会显示“未找到源代码-JAR文件C:\Program Files(x86)\Android\Android sdk\platfo
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()){
case R.id.waypointEditId:
waypointEdit();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public void waypointEdit(){
startActivity(new Intent(GPSTrialActivity.this, GPSWptsEdit.class));
}
}
问题可能是您在switch case构造中缺少了
break
;请尝试使用此代码
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()){
case R.id.waypointEditId:
waypointEdit();
break;
default:
return super.onOptionsItemSelected(item);
break;
}
}
public void waypointEdit(){
Intent i = new Intent(GPSTrialActivity.this, GPSWptsEdit.class);
startActivity(i);
}
}
但是你能告诉我问题出在哪里吗?你会犯哪些错误?logcat怎么说?我在我的项目中使用了同样的东西,而且效果很好 我用过:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.custom_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.add_new:
openDialog();
return true;
case R.id.delete_all:
// some code
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public void openDialog()
{
Intent intent=new Intent(ThisActivity.this,NewActivity.class);
startActivity(intent);
finish();
}
您遇到了什么问题?在menifest中添加活动GPSWptsEdit。在阅读了提供的评论后,我最终解决了问题。 结果是,我忘了修改这个:
setContentView(R.layout.wptedit);
还有什么不同呢?@xDragonZ当我研究
开关盒
结构时,他们告诉我总是在每个语句的末尾加上中断;
,否则代码会跳到下一个例子。当你处理选项
时,你必须返回真
,假
意味着你没有处理选项
我的应用程序我处理选项菜单的代码与我在回答中写的类似-没有返回true
谢谢你的解释,+1,因为在PHP中我使用break;
但是在android中返回true;
这让我很困惑。我在阅读了结果我忘了输入我的:“setContentView(R.layout.wptedit);“。在阅读了提供的评论之后,我最终解决了这个问题。结果我忘了输入我的:“setContentView(R.layout.wptedit);"