Android自定义对话框不起作用

时间:2014-01-19 15:20:11

标签: android android-layout android-custom-view android-dialog

我希望有人可以帮助我,我正在尝试显示自定义对话框但是当我点击调用此方法的按钮时,会出现灰色屏幕,就像显示自定义对话框但没有显示任何内容XML。

问题是前几天它有效,但我没有触及任何东西,现在它不起作用。 我试图清理项目并将其删除,删除应用程序并再次安装。 测试应用程序以查看某个对象是否为空,但显示如果有效,但不显示xml。

JavaFile

private void NegativeAlertDialog()
{
    LayoutInflater inflater = getLayoutInflater();
    View dialoglayout = inflater.inflate(R.layout.my_alert_dialog, (ViewGroup) getCurrentFocus());
    AlertDialog.Builder builderNegative = new AlertDialog.Builder(this);
    builderNegative.setCancelable(false);
    final AlertDialog alertNegative = builderNegative.create();

    Button buttonSaturation = (Button)dialoglayout.findViewById(R.id.buttonSaturation);
    buttonSaturation.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            alertNegative.dismiss();
            sendRefuseServiceOptionSaturation(Global.urlServer);
        }
    });

    Button buttonNoZone = (Button)dialoglayout.findViewById(R.id.buttonNoZone);
    buttonNoZone.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            alertNegative.dismiss();
            sendRefuseServiceOptionNotMyArea(Global.urlServer);
        }
    });

    Button buttonLiquidity = (Button)dialoglayout.findViewById(R.id.buttonLiquidity);
    buttonLiquidity.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            alertNegative.dismiss();
            sendRefuseServiceOptionLiquidityProblems(Global.urlServer);
        }
    });

    Button buttonMyAlertDialogCancel = (Button)dialoglayout.findViewById(R.id.buttonMyAlertDialogCancel);
    buttonMyAlertDialogCancel.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            alertNegative.cancel();
        rowSeleceted = -1;
        }
    });

    builderNegative.setView(dialoglayout);
    alertNegative.show();
}

xml.file

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/buttonSaturation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/RefuseAssigned1" />

    <Button
        android:id="@+id/buttonNoZone"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/RefuseAssigned2" />

    <Button
        android:id="@+id/buttonLiquidity"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/RefuseAssigned3" />

    <Button
        android:id="@+id/buttonMyAlertDialogCancel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/RefuseAssigned4" />

</LinearLayout>

2 个答案:

答案 0 :(得分:1)

你必须致电

 builderNegative.setView(dialoglayout)
在构建对话框之前

final AlertDialog alertNegative = builderNegative.create();

更改订单后,它会起作用!

答案 1 :(得分:0)

您尚未将View添加到对话框中。你可以通过调用以下方法来实现。

builderNegative.setView(dialoglayout);

AlertDialog.Builder

请注意,您可以使用null来扩充布局。

相关问题