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 は非推奨です。DialogFragments を使用することになっています: http://developer.android.com/reference/android/app/DialogFragment.html

于 2012-11-13T15:12:57.690 に答える