在我的应用中,我在操作栏中有一个图标。当我点击它时,我得到一个名为Settings
的选项。但是,当我点击此选项时,没有任何反应。我搜索过,但我无法找到如何使用此选项。我希望在Settings
点击时打开一个对话框(如果另一个Activity
打开也会很酷),然后我可以添加内容。有谁知道我会怎么做?
答案 0 :(得分:1)
在res / menu /文件夹中查找main.xml。 (至少对于eclipse ADT)你可以在那里指定一个onClick属性,它将调用代码中的一个函数。从那里你可以做任何你想做的事。
修改的
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity" >
<item
android:id="@+id/fb_login"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/facebook_login_label"
android:onClick="showFacebookDialog"/>
</menu>
这将为我的MainActivity定义项目,你可以在其中定义onClick,如此
public void showFacebookDialog(final MenuItem item)
{
...
}
答案 1 :(得分:1)
解决方案Dave S提供了有效但我想分享另一种方法来处理此功能。
在您的活动中,您可以使用以下代码与菜单进行互动:
@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) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
displaySettingsDialog();
}
return super.onOptionsItemSelected(item);
}
关键是要确保检查分配给菜单项的正确ID。
如果要启动新活动(SettingsActivity),则可以使用以下内容替换displaySettingsDialog()函数:
Intent intent = new Intent(this, SettingsActivity.class)
startActivity(intent);