ActionBarSherlock onCreateDialog()错误:“必须覆盖或实现超类型方法”

时间:2012-11-13 15:07:50

标签: android actionbarsherlock android-dialog

我正在使用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。

我非常感谢您解决此错误的任何建议。谢谢!

1 个答案:

答案 0 :(得分:3)

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