从另一个活动的ContextMenu开始一个具有意图的活动

时间:2012-04-25 18:30:31

标签: android android-activity android-intent contextmenu

我不知道如何开始Intent来调用ContextMenu中的其他活动。我有以下代码:

    public void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            setContentView(R.layout.profile);
    Button button5 = (Button) findViewById(R.id.button5);
        registerForContextMenu(button5);
    //...code...//

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.setHeaderTitle("Profile Options");
        menu.add(0,v.getId(),0, "Header");
        menu.add(0,v.getId(),0, "Header");

**This is where my Intent is ** Intent intent = new Intent (CustomizeActivity2.this, CustomizeActivity.class);
    startActivity(intent);

    public boolean OnContextItemSelected(MenuItem item) {
        if(item.getTitle()=="Edite Profile"){

            function1(item.getItemId());
            }

        else {return false;}
        return true;
    }

    public void function1(int id){
        Toast.makeText(this,"Edit Profile Called", Toast.LENGTH_SHORT).show();  
    }

当我点击ContextMenu中的项目时,我想开始另一项活动,我有一些设置。

4 个答案:

答案 0 :(得分:2)

您的代码中存在一些错误。构建onCreateContextMenu的{​​{1}}方法:

ContextMenu

当用户从@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){ super.onCreateContextMenu(menu, v, menuInfo); menu.setHeaderTitle("Profile Options"); menu.add(0, 1000, 0, "Header1"); // give your menus distinct ids!!! menu.add(0, 1001, 0, "Header2"); } 中选择其中一个选项并启动新活动时调用回调:

ContextMenu

答案 1 :(得分:0)

要在创建新意图所需的代码中的任何位置启动活动,将目标组件设置为目标活动类,然后使用此intent参数调用startActivity方法。

答案 2 :(得分:0)

// in my Util.java:
static void switchActivity(Activity from, Class<?> to) {
    Intent intent = new Intent(from, to);
    from.startActivity(intent);
    from.finish(); // only do this if you want to close the current activity
}

// in your context menu:
Util.switchActivity(this, AnotherActivity.class);

答案 3 :(得分:0)

确保您已在Manifest中声明了第二个活动(您正在呼叫的活动)。您不会收到编译错误,但Android无法启动清单中尚未定义的活动,即使它位于您当前的包/ apk中。

如果需要,请向我们展示您的manifest.xml文件包含的内容,如果有任何需要更改的话,我们会更好地了解。

编辑:确保您在清单中看到类似的内容

<activity android:name=".CustomizeActivity" />  
相关问题