如何从单个菜单选项启动新活动

时间:2011-11-15 07:22:27

标签: android menuitem

您好我正在尝试使用单个菜单选项(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));
}

}

4 个答案:

答案 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);
相关问题