0

以为我有它的工作,但我得到另一个错误!我还是 Android 新手,无论如何似乎都无法解决这个问题。我知道这与使用“new Builder(this);”有关。但是我不知道还能用什么,任何帮助将不胜感激!

changeDay.setOnClickListener(new OnClickListener(){
        public void onClick(View v){
            AlertDialog.Builder b = new Builder(this);
            b.setTitle("Select Day");
            String[] types = {"1", "2", "3"};
            b.setItems(types, new DialogInterface.OnClickListener(){
                public void onClick(DialogInterface dialog, int    which){
                    dialog.dismiss();
                    switch(which){
                    case 0:
                        day = "1";
                        break;
                    case 1:
                        day = "2";
                        break;
                    }
                }
            }); 
        }
    });
4

1 回答 1

0

您的问题出在String[]数组中,AlertDialog.Builder setItems方法不将String[]数组作为参数,它采用intCharSequence[]

检查这里 - http://developer.android.com/reference/android/app/AlertDialog.Builder.html#setItems(int, android.content.DialogInterface.OnClickListener)

更新:所以答案的第二部分是,在您的 Builder(this)this中指的是OnClickListener,您希望它指的contextActivity. 为此,您可以简单地在您的onCreate()

Context myCtx = this; //this sets the Activity as myCtx

然后替换Builder(this)Builder(myCtx). 瞧!

于 2013-04-09T02:26:58.250 回答