3

我正在使用 ActionBarSherlock,遇到了一个问题,我认为与导入有关(?)。

我正在尝试使用 onCreateDialog() 和 onPrepareDialog() 来呈现来自 SherlockListFragment 的自定义对话框。例如,onCreateDialog 看起来像这样:

@Override
protected Dialog onCreateDialog(int id) {
    AlertDialog alert = null;

    switch (id) {
    case DIALOG_CASE_1:

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

        builder.setMessage(question)
            .setCancelable(false)
            .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    // do stuff
                }
             })
             .setNegativeButton("No", new DialogInterface.OnClickListener() {
                 public void onClick(DialogInterface dialog, int id) {
                     dialog.cancel();
                 }
              });

          alert = builder.create();
          break;

    default:
        alert = null;
    }

    return alert;
}

这种方法在 SherlockActivity 中运行良好,但我在使用 SherlockListFragment 时遇到错误:

The method onCreateDialog(int) of type MyFragment must override or implement a supertype method

我收到 onPrepareDialog() 的类似错误。如上所述,MyFragment 扩展了 SherlockListFragment。

对于解决此错误的任何建议,我将不胜感激。谢谢!

4

1 回答 1

3

这些 API 已弃用,您应该使用 DialogFragment:http: //developer.android.com/reference/android/app/DialogFragment.html

于 2012-11-13T15:12:57.690 回答