0

我有一个通过单击菜单按钮调用的选项菜单,但我想要一个在应用程序启动时调用的选项菜单。这是一个语言选择设置。

我搜索了很多,但我只找到如何让它出现onCreateOptionsMenu(Menu menu)

4

2 回答 2

1

我确定您正在寻找如何以编程方式打开菜单,

以下链接有一个很好的例子,

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()方法中调用

于 2012-08-09T15:28:17.857 回答
0

OnCreate 始终运行您的 Activity 已创建,如果您此时创建 AlertDialog 并调用 show(),它只会在您的 activty 完成初始化后显示(在 onResume() 之后),在此之前,屏幕上没有任何内容。

你能解释一下你预计会发生什么吗?

于 2012-08-09T13:41:33.587 回答