如何设计对话框以具有复选框和一个 EditText 框?

How to design dialog to have Checkboxes and one EditText box?

我正在尝试设计对话框 xml 文件。遵循 Material 设计指南有点困难。基本上我希望对话框 window 允许用户多次选中复选框,并在底部有一个选项来添加自定义选项(一个 EditText)。例如:

Choose the options

[x] Option1
[] Option2
[x] Option3
[] Option4

Add custom options:
__________

       [Cancel] [Ok]

我的代码:

public void onClick(View view) {
    AlertDialog.Builder mBuilder = new AlertDialog.Builder(AddData.this);
    View mView = getLayoutInflater().inflate(R.layout.dialog_adding_data,null);
    // More code here
    mBuilder.show();
}

据我所知,我使用的是自定义对话框布局。但是在 material 设计指南中,我没有看到执行类似操作的选项。另外我不确定如何设计 dialog_adding_data 文件。我如何设计 dialog_adding_data 以使其遵循 material 设计指南并具有相同的功能?

要实现您的 UI 要求,您需要为对话框设置自定义视图。这里的关键点是使用以下内容:

mBuilder.setView(mView);

如果您不使用 view/data 绑定,在引用视图时,请确保使用 mView.findViewById 而不是 findViewById,如下所示:

EditText editText = mView.findViewById(R.id.edit_text);
// Add your code logic, etc.

关于您创建的 dialog_adding_data.xml,它将与任何其他布局一样。根据您的具体需要,其层次结构可能如下所示:

<ScrollView>

    <LinearLayout>

        <CheckBox />

        <CheckBox />

        <!-- This one controls the EditText below. -->
        <CheckBox android:text="Add custom options" />

        <EditText />

    </LinearLayout>

</ScrollView>

如果复选框计数是动态的,那么您可能需要使用具有 2 种视图类型(一种用于普通选项,另一种用于自定义选项)的 RecyclerView