Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android AlertDialog.Builder OnClickListener上的自定义按钮_Android_Android Layout_Android Alertdialog - Fatal编程技术网

Android AlertDialog.Builder OnClickListener上的自定义按钮

Android AlertDialog.Builder OnClickListener上的自定义按钮,android,android-layout,android-alertdialog,Android,Android Layout,Android Alertdialog,我想显示我的omn警报对话框。我创建了布局,然后在OnClickListener上使用它。(当您单击列表中的某个元素时,它将显示该元素的详细信息) 当AlertDialog出现时,一切正常,但我希望我自己的Disclose按钮能够正常工作。不幸的是,它没有,我不知道如何管理这一点 这是我的XML文件: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.andr

我想显示我的omn警报对话框。我创建了布局,然后在OnClickListener上使用它。(当您单击列表中的某个元素时,它将显示该元素的详细信息)

当AlertDialog出现时,一切正常,但我希望我自己的Disclose按钮能够正常工作。不幸的是,它没有,我不知道如何管理这一点

这是我的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/DetailDialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/popup_background" >

<Button
    android:id="@+id/dismissAlert"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/firstDivider"
    android:layout_centerHorizontal="true"
    android:background="@color/popup_background"
    android:text="Dismiss"
    android:textColor="@color/splashColor" />

<TextView
    android:id="@+id/alertDetail"
    android:layout_width="wrap_content"
    android:layout_height="80dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:paddingTop="20dp"
    android:text="Description : alert&apos;s details"
    android:textColor="@color/text"
    android:textSize="20dp" />

<View
    android:id="@+id/firstDivider"
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/alertDetail"
    android:background="@color/design_alert" />

谢谢你的帮助

这对我来说很好:

alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "Dismiss",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
    }
}); 
您可以尝试以下方法:

dismiss.setOnClickListener(new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
    }
});
这应该行得通。

在对话框上调用
discouse()
,而不是在生成器上

比如说,

final AlertDialog dlg = adb.show();

// in onClick()
dlg.dismiss();

试试这种方法,希望这能帮助你解决问题。

final Dialog dialog = new Dialog(activity, android.R.style.Theme_Translucent_NoTitleBar);
        dialog.setContentView(R.layout.alert_detail_dialog);

        TextView text = (TextView) dialog.findViewById(R.id.text);
        text.setMovementMethod(LinkMovementMethod.getInstance());
        text.setText(message);
        text.setGravity(Gravity.CENTER);

        Button dismiss = (Button) dialog.findViewById(R.id.dismissAlert);
        dismiss.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                  dialog.dismiss();
             }
        });

dialog.show();

您指定的想法不清楚谢谢@laalto!我不小心,这是个愚蠢的错误。再次感谢:)
final Dialog dialog = new Dialog(activity, android.R.style.Theme_Translucent_NoTitleBar);
        dialog.setContentView(R.layout.alert_detail_dialog);

        TextView text = (TextView) dialog.findViewById(R.id.text);
        text.setMovementMethod(LinkMovementMethod.getInstance());
        text.setText(message);
        text.setGravity(Gravity.CENTER);

        Button dismiss = (Button) dialog.findViewById(R.id.dismissAlert);
        dismiss.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                  dialog.dismiss();
             }
        });

dialog.show();