AlertDialog应该是Dialog类型

时间:2013-08-16 12:10:40

标签: java eclipse android-4.0-ice-cream-sandwich

紧跟此处显示的骨架:

http://developer.android.com/guide/topics/ui/dialogs.html#

在整个页面中,他们使用这样的声明:

public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setTitle(R.string.pick_color);
       .setItems(R.array.colors_array, new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int which) {
           // The 'which' argument contains the index position
           // of the selected item
       }
    });
    return builder.create();
}

此方法的数据类型是“Dialog”但使用的构建器,因此方法的返回类型为“AlertDialog”。 Eclipse可以理解地告诉我这些是不兼容的,并且在我尝试做类似的事情时不会编译我的代码。它也不会让我将builder.create()调用的结果转换为类型Dialog,所以没有解决方法。我该如何解决这个并让我的代码编译? 感谢。

1 个答案:

答案 0 :(得分:0)

你只是复制并过去?来自http://developer.android.com/guide/topics/ui/dialogs.html#的代码没有任何错误。 AlertDialog是Dialog的子类,它不是错误的(当方法类型为对话框时返回alertdialog。)你可能忘了“extends DialogFragment”吗?