项目分隔符的alertdialog问题

时间:2018-11-11 23:54:10

标签: android alertdialog

我在警报对话框方面遇到问题。创建警报对话框时,默认行为是不带分隔线的情况下显示。我想得到与下面的图片完全一样的东西 enter image description here

我的代码在不需要的最后一个列表项的底部显示了一些不同的内容,例如多余的一行。

 AlertDialog.Builder builder = new AlertDialog.Builder(context);
        AlertDialog alertDialogObject = builder.create();
        builder.setItems(valueList, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int item) {
                editField.setText(valueList[item]);
                editField.setError(null);
                editField.requestFocus();
            }
        });
        alertDialogObject = builder.create();
        ListView listView=alertDialogObject.getListView();
        listView.setDivider(new ColorDrawable(Color.LTGRAY)); // set color
        listView.setDividerHeight(2); // set height
        alertDialogObject.show(); 

enter image description here

有人可以帮忙吗?我想像上面的第一张图片一样获得对话框警报吗?

2 个答案:

答案 0 :(得分:1)

它看起来像ListView中的页脚装饰,因此请尝试禁用页脚分隔线,然后添加一个空的页脚,应从底部删除该行:

listView.setFooterDividersEnabled(false);
listView.addFooterView(new View(context));

答案 1 :(得分:0)

这是一个带分隔线的示例

//create dialog
    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setTitle(title);
    builder.setItems(valueList, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int item) {
            //do something
        }
    });
    AlertDialog alert =builder.create();
    //set dividers
    ListView listView =alert.getListView();
    listView.setDivider(context.getResources().getDrawable(R.drawable.extraDull));
    listView.setDividerHeight(1);
    //show
    alert.show();

请注意这段代码与您所拥有的代码的区别... 在builder.create()

附近看

您也可以将其添加到您的颜色文件夹中

<drawable name="extraDull">#808080</drawable>