我有一个通过单击菜单按钮调用的选项菜单,但我想要一个在应用程序启动时调用的选项菜单。这是一个语言选择设置。
我搜索了很多,但我只找到如何让它出现onCreateOptionsMenu(Menu menu)
我确定您正在寻找如何以编程方式打开菜单,
以下链接有一个很好的例子,
http://kahdev.wordpress.com/2010/03/15/progamatically-open-and-close-an-activitys-option-menu/
您可以通过对该示例教程进行一些细微的修改来完成您的任务。
编辑
对于自定义菜单,您需要使用 xml 或 java 创建自己的菜单。但首选 XML。
来自开发者网站的示例菜单
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/new_game"
android:icon="@drawable/ic_new_game"
android:title="@string/new_game"
android:showAsAction="ifRoom"/>
<item android:id="@+id/help"
android:icon="@drawable/ic_help"
android:title="@string/help" />
</menu>
那么您需要膨胀菜单资源才能在活动中使用
来自开发者网站的示例
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.game_menu, menu);
return true;
}
编辑
然后你可以简单地使用警报对话框setSingleChoiceItems();
开发人员站点为每种对话类型提供了足够的示例。
例如警报对话框
final CharSequence[] items = {"Red", "Green", "Blue"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a color");
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
// This is the place where you need to execute the logic
}
});
AlertDialog alert = builder.create();
但是你需要调用alert.show();
来显示对话框,例如你可以在onResume()
方法中调用
OnCreate 始终运行您的 Activity 已创建,如果您此时创建 AlertDialog 并调用 show(),它只会在您的 activty 完成初始化后显示(在 onResume() 之后),在此之前,屏幕上没有任何内容。
你能解释一下你预计会发生什么吗?