How to create a Yes / No alert dialog in a fragment in Android
These are my codes I have commented what I need. I am trying to use some codes but does not seem to be Fragment compatible.
public class main extends Fragment {
ImageButton imagebutton;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.main, container, false);
imagebutton = (ImageButton) rootView.findViewById(R.id.im);
imagebutton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//Open Yes/No Dialog
//if Yes do something
}
});
}
}
+3
source to share
2 answers
Try this method:
private void createAndShowAlertDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("My Title");
builder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//TODO
dialog.dismiss();
}
});
builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//TODO
dialog.dismiss();
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
+19
source to share
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("Really?");
alertDialogBuilder.setMessage("Are you sure?");
alertDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "CLick-Click!!",Toast.LENGTH_LONG).show();
}
});
alertDialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
return alertDialogBuilder.create();
}
}
To create a dialogue:
new MyDialogFragment().show(getFragmentManager(), "MyDialog");
And dismiss the dialogue somewhere:
((MyDialogFragment)getFragmentManager().findFragmentByTag("MyDialog")).getDialog().dismiss();
OR
Try this snippet:
AlertDialog.Builder mDialog = new AlertDialog.Builder(MyClassNane.this);
mDialog.setTitle("Title");
mDialog.setMessage("Do you want to delete ?");
mDialog.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
Toast.makeText(getApplicationContext(),
"Click-Click!!",Toast.LENGTH_LONG).show();
}
dialog.cancel();
}
});
mDialog.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
dialog.cancel();
}
});
AlertDialog alert = mDialog.create();
alert.show();
+1
source to share