Java 从菜单中打开新活动

Java 从菜单中打开新活动,java,android,menu,android-activity,Java,Android,Menu,Android Activity,我正在为android编写应用程序,我遇到了一些问题。 我有主要活动和设置活动。 我想从“活动”主菜单启动“设置”活动。 我有以下代码来执行此操作: @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.mai

我正在为android编写应用程序,我遇到了一些问题。 我有主要活动和设置活动。 我想从“活动”主菜单启动“设置”活动。 我有以下代码来执行此操作:

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    switch (item.getItemId())
    {
    case R.id.menu_preferences:
        Intent j = new Intent(getApplicationContext(), SettingsActivity.class);
        startActivity(j);
        break;
    default:
        break;
    }
    return super.onOptionsItemSelected(item);
}
但它不起作用。当我尝试时,我有logcat:

Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@40a254c8

和设置活动未显示。我不知道该怎么办…

在清单文件中添加设置活动

<activity android:name="yourmainpackagename.SettingsActivity " />


希望这有帮助。

在清单文件中添加设置活动

<activity android:name="yourmainpackagename.SettingsActivity " />

希望这有帮助。

更换这一行

return super.onOptionsItemSelected(item);
用这个

return true;
更换这条线

return super.onOptionsItemSelected(item);
用这个

return true;

在清单中声明SettingsActivity。也可以使用MainActivity.this而不是getApplicationContext()。
这应该会有所帮助。

在清单中声明设置活动。也可以使用MainActivity.this而不是getApplicationContext()。
这应该会有帮助。

首先,您不应该使用getApplicationContext作为上下文。应该是这样的:

    Intent j = new Intent(Firstclass.this, Secondclass.class);
    startActivity(j);

不要忘记在清单中声明活动,并在最后返回true。希望这有帮助

首先,您不应该使用getApplicationContext作为上下文。应该是这样的:

    Intent j = new Intent(Firstclass.this, Secondclass.class);
    startActivity(j);

不要忘记在清单中声明活动,并在最后返回true。希望这有帮助

在发布之前,您似乎正在设置活动查找错误。问题是我正在进行主要活动。我更改了代码,就像在答案中这样,但它不起作用。我通过单击按钮开始活动进行了检查。它可以工作,但代码是一样的。似乎在发布之前,您正在设置活动以查找错误。问题是我处于主活动中。我更改了代码,就像在答案中这样,但它不起作用。我通过单击按钮开始活动进行了检查。它可以工作,但代码是一样的。