0

我正在为 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

4 回答 4

3

替换此行

return super.onOptionsItemSelected(item);

有了这个

return true;
于 2013-10-30T12:34:04.333 回答
1

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

于 2013-10-30T12:36:21.563 回答
1

在清单文件中添加 SettingsActivity。

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

希望这可以帮助。

于 2013-10-30T12:33:52.207 回答
0

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

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

不要忘记在清单中声明 Activity 并在最后返回 true。希望这可以帮助

于 2013-10-30T12:37:44.120 回答