我想从我的Fragment类中调用DialogFragment。我有一个ImageView,并且希望在我设置的ImageView的onClickListener中调用我的DialogFragment类。
在尝试调用DialogFragment的onClick中,我遇到了错误。
我在“show”上得到一个错误,指出“DialogFragment中的show(FragmentManager,String)方法不适用于参数(FragmentManager,String)”,并在“newInstance”上得到一个错误,指出“MyDialogFragment”的“newInstance()”方法未定义。
以下是我的代码:
在尝试调用DialogFragment的onClick中,我遇到了错误。
我在“show”上得到一个错误,指出“DialogFragment中的show(FragmentManager,String)方法不适用于参数(FragmentManager,String)”,并在“newInstance”上得到一个错误,指出“MyDialogFragment”的“newInstance()”方法未定义。
以下是我的代码:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
final View v = inflater.inflate(R.layout.image_detail_fragment,
container, false);
mImageView = (RecyclingImageView) v.findViewById(R.id.imageView);
mImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
//Here
MyDialogFragment dialog = MyDialogFragment.newInstance();
dialog.show(getFragmentManager(), "fragmentDialog");
}
});
return v;
}
DialogFragment类:
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
class MyDialogFragment extends DialogFragment {
Context mContext;
public MyDialogFragment() {
mContext = getActivity();
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(mContext);
alertDialogBuilder.setTitle("Set Wallpaper?");
alertDialogBuilder.setMessage("Are you sure?");
//null should be your on click listener
alertDialogBuilder.setPositiveButton("OK", null);
alertDialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
return alertDialogBuilder.create();
}
public static MyDialogFragment newInstance() {
MyDialogFragment = new MyDialogFragment;
return f;
}
}