2013-10-30 54 views
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: [email protected] 

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

+1

似乎你在设置活动 –

+0

谷歌的错误发布之前 – juned

+0

问题是,我在主要活动。我改变了代码,像这样的答案,它不工作。我检查了按钮点击开始的活动。它可以工作,但代码是一样的。 – user2651180

回答

1

在清单文件中添加SettingsActivity。

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

希望这会有所帮助。

3

替换该行

return super.onOptionsItemSelected(item); 

在清单这一

return true; 
1

申报SettingsActivity。也使用MainActivity.this而不是getApplicationContext()。 这应该有所帮助。

0

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

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

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