Ich versuche, ein DialogFragment aus meiner Fragment-Klasse aufzurufen. Ich habe ein ImageView und möchte meine DialogFragment-Klasse im onClickListener des ImageView aufrufen, das ich eingerichtet habe.Aufruf von DialogFragment aus Fragment
Ich erhalte einen Fehler im onClick mit dem Code, den ich eingerichtet habe, um das DialogFragment aufzurufen.
Ich bekomme einen Fehler auf "show" mit der Aussage "Die Methode show (FragmentManager, String) im Typ DialogFragment ist nicht anwendbar für die Argumente (FragmentManager, String)" und ein Fehler auf "new Instance" mit "The Verfahren newInstance() ist nicht definiert für den Typ MyDialogFragment“
Hier ist mein Code:
@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 Klasse:
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;
}
}
Logcat bitte hinzufügen. – Aleksandr
Und ich kann Ihre statische Methode nicht sehen MyDialogFragment.newInstance() – Aleksandr