0

我不知道如何开始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

4 回答 4

2

您的代码中有一些错误。onCreateContextMenu您的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当用户从 中选择一个选项并开始一个新活动时调用的回调:

//the correct callback name starts with o and not O
@Override
public boolean onContextItemSelected(MenuItem item) {
   switch (item.getItemId()) {
   case 1000:
       //first ContextMenu option I picked this to start the  new activity
       Intent i = new Intent(CurrentActivityName.this, OtherActivityName.class);
       startActivity(i);
   break; 
   case 1001:
      //stuff for option 2 of the ContextMenu
   break;
   }
   return super.onContextItemSelected(item);
}
于 2012-04-26T18:03:19.047 回答
0

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

于 2012-04-25T18:36:58.833 回答
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);
于 2012-04-25T18:40:49.793 回答
0

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

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

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

<activity android:name=".CustomizeActivity" />  
于 2012-04-25T19:48:35.397 回答