单击按钮时隐藏自定义对话框

时间:2017-08-04 16:21:04

标签: java android dialog

目前我正在使用以下代码并创建了一个自定义对话框。单击按钮时会打开对话框,但是我想通过点击OK按钮隐藏对话框..但是它不工作且没有显示错误... 我使用了' dialog.dissmis' 代码在这里:

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();
}
});
}
});

请任何人帮我隐藏按钮上的对话框点击..谢谢

1 个答案:

答案 0 :(得分:0)

这是编写自定义对话框的正确方法。

//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();
    }
});