8

私はアンドロイドの例に従いましたが、理解できないエラーがあります:

void showDialog() {
    DialogFragment newFragment = MyAlertDialogFragment.newInstance();
    newFragment.show(fm, "alert");
}

public static class MyAlertDialogFragment extends DialogFragment {
    public static MyAlertDialogFragment newInstance() {
        MyAlertDialogFragment frag = new MyAlertDialogFragment();
        return frag;
    }

    public Dialog onCreateDialog(Bundle savedInstanceState) {
        return new AlertDialog.Builder(getActivity()).setTitle("test")
                .setMessage("bla bla bla").create();
    }
}

newFragment.show(fm, "alert");私にエラーを返します:

タイプ DialogFragment のメソッド show(FragmentManager, String) は、引数 (FragmentManager, String) には適用されません。

誰かが私を助けることができますか?

4

3 に答える 3

13

問題は、サポート パッケージを使用する必要があるが、呼び出すときにFragmentManagerネイティブを使用しているためです。variable を初期化するときに呼び出してみてください。FragmentManagergetFragmentManager()getSupportFragmentManager()fm

于 2011-11-03T14:41:34.733 に答える
6

実際、@ Jacobが言うように行った後は、ネイティブパッケージからではなく、サポートパッケージからDialogFragmentが含まれていることも確認する必要があります。

インポートすることでそれを行うことができます、

import android.support.v4.app.DialogFragment;
于 2012-04-18T14:55:02.547 に答える