I\'m having trouble closing my alert dialog. I am using a layout inflator to make the dialog, so I\'m not sure how I would go about closing the thing after I\'m done with it
Try this:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
LayoutInflater inflater = getLayoutInflater();
View dialogView = inflater.inflate(R.layout.brush_opts_dialog,null);
builder.setView(dialogView);
closeBtn = (Button)dialogView.findViewById(R.id.close_btn);
final AlertDialog dialog = builder.create();
closeBtn .setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
You should use the AlertDialog.Builder to "build" the Alert Dialog itself. Then, call the create() method on the AlertDialog.Builder object. This method returns an AlertDialog object, which allows you to call dismiss().
You should not have to create it multiple times, nor use any DialogInterface objects. This works for me. Let me know how it goes for you.
final viewProgressDialogue viewProgressDialogue = new viewProgressDialogue(DebugActivity.this);
viewProgressDialogue.show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Log.d("response","im calling");
viewProgressDialogue.dismiss();
}
}, 5000);
> Make it one Instance so that it will work It Will in the Fragment too. for Fragment Use
final viewProgressDialogue viewProgressDialogue = new viewProgressDialogue(getActivity());
viewProgressDialogue.show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Log.d("response", "im calling");
viewProgressDialogue.dismiss();
}
}, 5000);
> viewProgressDialogue Class
public class viewProgressDialogue extends Dialog {
public viewProgressDialogue(@NonNull Context context) {
super(context);
WindowManager.LayoutParams wlmp = getWindow().getAttributes();
getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
wlmp.gravity = Gravity.CENTER_HORIZONTAL;
getWindow().setAttributes(wlmp);
setTitle(null);
setCancelable(false);
setOnCancelListener(null);
View view = LayoutInflater.from(context).inflate(
R.layout.custom_progress, null);
setContentView(view);
}
}
do it like this,
add_item.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
dialog.dismiss();
}
});
i have modified your code plz check..
AlertDialog.Builder dialog = new AlertDialog.Builder(AddData.this);
DialogInterface dia = new DialogInterface();
//Create a custom layout for the dialog box
LayoutInflater inflater = (LayoutInflater)AddData.this.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.add_rep_1_set, parent, false);
TextView title = (TextView)layout.findViewById(R.id.rep_1_title);
Button add_item = (Button)layout.findViewById(R.id.add_button);
final AlertDialog Dial = alertDialog.create();
title.setText(workout_items[position]);
Dial.setView(layout);
AlertDialog alertDialog = dialog.create();
add_item.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
Dial.dismiss();
}
});
Dial.show();
Just Added
final AlertDialog Dial = alertDialog.create(); and change dialog.setView(layout); to Dial.setView(layout);
now just call Dial.dismiss(); in onclick listener.. works fine for me.