1

我想在几个按钮的 Onclick 事件中检查一些 Spinner 控件(如果用户离开 Activity),如果一个或多个未填写,则向用户显示带有 2 个选项的警告消息:

@Override
public void onClick(View v) {

    int i1 = spinner1.getSelectedItemPosition();
        (..)

    if ((i1 == 0) | (i2 == 0) | (i3 == 0) | (i4 == 0) | (i5 == 0)) {
        AlertDialog.Builder alertbox = new AlertDialog.Builder(this);
        alertbox.setMessage("Answers missing, what do you want to do?");
        final CharSequence[] items = {
                "Oops.. let me fix that…",
                "I want to leave the app now" };
        alertbox.setTitle("Pick an item");
        alertbox.setItems(items, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int item) {
                if (item == 1) {
                                        finish();
                                      // should lead back to the spinner controls on the page

                }else if (item == 2){
                    finish();
                android.os.Process.killProcess(android.os.Process
                            .myPid());
                }
            }
        }).create();
        alertbox.show();

但是,我只看到一个带有标题的空框,但没有显示使用 setMessage() 设置的消息,并且我没有得到任何列表项供选择 - 框是空的!知道我能做些什么来解决这个问题吗?

4

1 回答 1

10

我一直有同样的问题,我发现如果我删除 .setMessage 行,那么列表就会出现标题。不知道为什么会这样。如果您使用 .setpositive 按钮、.negative 等,那么您可以收到一条消息。我还注意到谷歌示例都没有使用带有项目列表的 .setMessage 。他们只使用 .setTitle,它不会给你太多空间。
因此,虽然如果您想要一条长消息,这对您没有帮助,但如果这是您的主要目标,它将使您的列表可见。

于 2012-07-04T22:59:03.817 回答