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

Java 单击按钮时隐藏自定义对话框,java,android,dialog,Java,Android,Dialog,目前我正在使用以下代码并创建一个自定义对话框。当点击按钮时,对话框打开,但我想通过点击OK按钮隐藏对话框。但它不工作,也不显示错误。。。 我用了“dialog.dissmis” 代码如下: final Dialog dialog =new Dialog(ActionBarActivity. this); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.

目前我正在使用以下代码并创建一个自定义对话框。当点击按钮时,对话框打开,但我想通过点击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();
}
});
}
});

请任何人帮助我隐藏按钮单击时的对话框。谢谢这是编写自定义对话框的正确方法

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

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

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

尝试此接受答案此链接可帮助您关闭对话框尝试此接受答案此链接可帮助您关闭对话框