从菜单中打开新活动

时间:2013-10-30 12:30:45

标签: 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.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

并且未显示设置活动。我不知道该怎么做......

4 个答案:

答案 0 :(得分:3)

替换此行

return super.onOptionsItemSelected(item);

这一个

return true;

答案 1 :(得分:1)

在清单文件中添加SettingsActivity。

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

希望这有帮助。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

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

不要忘记在清单中声明Activity并在结尾处返回true。希望这有帮助