带关闭按钮的Android自定义对话框

带关闭按钮的Android自定义对话框,android,xml,dialog,Android,Xml,Dialog,当“触摸”自定义对话框按钮打开时,我有一个包含“关于”和“图像”以及“设置”的操作栏,并且我在xml文件id“dialogButton”中使用了一个按钮 基本上,我希望对话框在被触摸时关闭 Actionbar.java: package com.example.actionbar; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.cont

当“触摸”自定义对话框按钮打开时,我有一个包含“关于”和“图像”以及“设置”的操作栏,并且我在xml文件id“dialogButton”中使用了一个按钮

基本上,我希望对话框在被触摸时关闭

Actionbar.java

package com.example.actionbar;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.widget.Button;

public class ActionBar extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_action_bar);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.testmenu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    super.onOptionsItemSelected(item);
    switch(item.getItemId()){
    case R.id.about:
        aboutMenuItem();
        break;
    case R.id.settings:
        settingsMenuItem();
        break;
    case R.id.item3:
        item3MenuItem();
        break;
    }
    return true;
}   
private void aboutMenuItem(){
    final Dialog d = new Dialog(this);
    d.setContentView(R.layout.dialog_custom);
    d.setTitle("Custom Dialog");        
    d.findViewById(R.id.dialogButton);
    d.show();
}

private void settingsMenuItem() { }

private void item3MenuItem() { }
}

和我的xml文件,
dialog\u custom.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">

<WebView
    android:id="@+id/dialog_webview"
    android:layout_width="match_parent"
    android:layout_height="68dp" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello Dialog" />

<Button
    android:id="@+id/dialogButton"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:layout_marginRight="5dp"
    android:text="OK" />

你可以试试这个

final Dialog dialog = new Dialog(context);
        dialog.setContentView(R.layout.custom);
        dialog.setTitle("Title...");

        // set the custom dialog components - text, image and button
        TextView text = (TextView) dialog.findViewById(R.id.text);
        text.setText("Android custom dialog example!");

        Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK); // find button with dialog's preference..

        // if button is clicked, close the custom dialog
        dialogButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.dismiss();
            }
        });

        dialog.show();
试试这个

private void aboutMenuItem(){
    final Dialog d = new Dialog(this);
    d.setContentView(R.layout.dialog_custom);
    d.setTitle("Custom Dialog");
    Button connect = (Button) d.findViewById(R.id.dialogButton);

    connect.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            d.dismiss();
      }
    });
  d.show();
 }

您可以在aboutMenuItem()函数中执行类似操作

      final Dialog dialog = new Dialog(this);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.getWindow().setBackgroundDrawable(
                new ColorDrawable(Color.TRANSPARENT));
        View view = getLayoutInflater().inflate(R.layout.yourCustomDialogLayout,
                null);

        Button dialogButton = (Button) view.findViewById(R.id.dialogButton);

        dialogButton .setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                dialog.dismiss();
            }
        });
        dialog.setContentView(view);
        dialog.setCancelable(false);
        dialog.show();

什么是错误?或者提到问题..我想添加一个在自定义对话框中工作的关闭按钮,我已经添加了自定义按钮,但是如何使其工作,因此当用户触摸按钮时,对话框将关闭