1

Currently I am using the following code and created a custom dialog. And dialog opens when button is clicked,, but I want to hide the dialog by tapping on OK button..but its not working and not showing error... I used 'dialog.dissmis' Code is here:

final Dialog dialog =new Dialog(ActionBarActivity. this);
                   dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_dictionary);
TextView word = (TextView)dialog.findViewById(R.id.txtWord);
 final TextView wordMeaning = (TextView)dialog.findViewById(R.id.txtMeaning);
dialog.getWindow().getAttributes().windowAnimations = R.style.AnimLeftRight;

//Get Words and it's meanings.

word.setText(Dictionary.getWord());

wordMeaning.setText(Dictionary.getMeaning());

Button btntts = (Button)dialog.findViewById(R.id.btntts);
final Button ok = (Button)dialog.findViewById(R.id.btnPositive);

// Show the dialog first.
dialog.show();


WindowManager.LayoutParams lp = new WindowManager.LayoutParams();

lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
lp.gravity = Gravity.CENTER;

dialog.getWindow().setAttributes(lp);


btntts.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String convertTextToSpeech
wordMeaning.getText().toString();

convertToSpeech = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {

@TargetApi(Build.VERSION_CODES.LOLLIPOP)

@Override
public void onInit(int status) {

if(status != TextToSpeech.ERROR){

convertToSpeech.setLanguage(Locale.US);

convertToSpeech.speak(convertTextToSpeech, TextToSpeech.QUEUE_FLUSH, null, null);
}
}
});

ok.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

dialog.dismiss();
}
});
}
});

Please anyone help me to hide the dialog on button click..thanks

Niezwm
  • 77
  • 1
  • 8

1 Answers1

0

This is the proper way to code a custom dialog box.

//Create a new builder and get the layout.
final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
View builderView = getLayoutInflater().inflate(R.layout.custom_alert_view, null);

//Set the layout inside of the builder
builder.setView(builderView);

//Show the dislog
final AlertDialog alert = builder.show();

//Get Button from the layout.
Button dismiss = (Button) builderView.findViewById(R.id.dismiss);


//Click the dismiss button from within the alert. will dismiss the dialog box
dismiss.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        alert.dismiss();
    }
});
letsCode
  • 2,572
  • 1
  • 6
  • 27