您好我正在尝试使用单个菜单选项(R.id.waypointEditId)打开一个新活动(GPSWptsEdit.class),但我对代码没有太多运气。每次我在eclipse中以调试模式运行GPSTrialActivity并单击菜单选项时,我在eclispe中弹出一个名为“Confirm Perspective Switch”的窗口,当我单击yes时,defualt instrumentation选项卡显示“Source not found - The JAR file C :\ Program Files(x86)\ Android \ android-sdk \ platfoms \ android-8 \ android.jar没有附加源。
如果有人可以提供一些建议,那就太过分了。这是我一直在玩的代码:
@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));
}
}
答案 0 :(得分:0)
问题可能是您错过了开关案例构建中的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说什么?
答案 1 :(得分:0)
我在我的项目中使用了相同的东西并且运行良好。
我用过:
@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();
}
你有什么问题?
答案 2 :(得分:0)
在清单中添加活动GPS pesEdit。
答案 3 :(得分:0)
在阅读提供的评论后,我最终解决了这个问题。 事实证明,我忘了修改这个:
setContentView(R.layout.wptedit);