我正在为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
并且未显示设置活动。我不知道该怎么做......
答案 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。希望这有帮助