Android - 触摸外部视图时,如何使用微调器注入AlertDialog?

时间:2014-11-16 19:45:25

标签: android dialog touch spinner

基本上我想要做的就是关闭Spinner的对话框和我在这些框之外点击时创建的自定义对话框。谁知道如何处理这些?

dialog.xml,My Spinner的xml,MakeandShowDialogBox函数如下:

dialog.xml

<?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" >

    <TableLayout 
        android:id="@+id/scheduleTable"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        ></TableLayout>

</LinearLayout>

Spinner XML

<Spinner
    android:id="@+id/spinList"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:entries="@array/strDepartmentNames"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:spinnerMode="dialog"
    android:paddingTop="15dp"
    android:paddingBottom="15dp" />

makeAndShowDialogBox

private void makeAndShowDialogBox() {

    AlertDialog.Builder myDialogBox = new AlertDialog.Builder(this);

    final LayoutInflater layoutInflater = (LayoutInflater) getApplicationContext()
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    final View dialogView = layoutInflater.inflate(R.layout.dialog, null);

    // Set three option buttons
    myDialogBox.setPositiveButton("Close",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {

                }
            });

    myDialogBox.setView(dialogView);
    myDialogBox.create();
    myDialogBox.show();
}

2 个答案:

答案 0 :(得分:5)

您只需在对话框中添加此选项

myDialogBox.setCancelable(true);

答案 1 :(得分:0)

您是否尝试调用此方法setCanceledOnTouchOutside(true)

myDialogBox.setCanceledOnTouchOutside(true);

Afaik它应该有用。