对于MyDialogFragment类型,方法getParentFragment()未定义

时间:2013-10-11 09:40:44

标签: android android-fragments

我收到错误“方法getParentFragment()未定义类型MyDialogFragment”

我不知道为什么我会收到这个错误,因为我担心,我已经正确设置了所有内容。

任何指导都会有所帮助,谢谢。

import android.app.DialogFragment;
import android.app.WallpaperManager;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;

class MyDialogFragment extends DialogFragment {
private Button ButtonOk;
private Button ButtonCancel;

public MyDialogFragment() {
    // Empty constructor required for DialogFragment
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.prompt, container);
    ButtonOk = (Button) view.findViewById(R.id.button1);
    ButtonCancel = (Button) view.findViewById(R.id.button2);
    getDialog().setTitle("Set Wallpaper?");

    ButtonOk.setOnClickListener(new View.OnClickListener() {



        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub



                    //Here

            ((ImageDetailFragment)(MyDialogFragment.this.getParentFragment())).onDialogOKPressed();
            dismiss();




        }

    });

    ButtonCancel.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            MyDialogFragment.this.dismiss();

        }
    });

    return view;

}
} 

从我的主要片段中导入:

import android.app.WallpaperManager;
import android.graphics.Bitmap;
import android.graphics.Point;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;

1 个答案:

答案 0 :(得分:1)

你可以通过创建一个从该片段设置父片段的方法来解决这个问题,不知道为什么getParentFragment方法失败了。也许你从主要的android.app lib中使用支持lib和DialogFragment的Fragment,或者相反?