如何在onCreate中显示弹出菜单?

时间:2012-08-09 13:34:14

标签: android menu dialog

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

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

2 个答案:

答案 0 :(得分:1)

我确信您正在寻找如何以程序化方式打开菜单,

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

http://kahdev.wordpress.com/2010/03/15/progamatically-open-and-close-an-activitys-option-menu/

您可以通过对该示例教程稍作修改来完成任务。

修改

对于自定义菜单,您需要使用xml或java创建自己的菜单。但XML是首选。

来自developer site

示例菜单

<?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>

然后你需要按顺序膨胀菜单资源以在活动中使用

来自developer site

的示例
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.game_menu, menu);
    return true;
}

修改

然后,您可以使用setSingleChoiceItems();

进行警告对话

developer网站为每种对话框类型提供了足够的示例。

例如警告对话框

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

答案 1 :(得分:0)

OnCreate总是运行你的Activity创建,如果你创建一个AlertDialog并且此时调用show(),它只会在你的activty完成它的初始化之后显示(在onResume()之后),在它之前,屏幕上什么都没有

请你解释一下你的意思是什么?