我正在尝试使用看起来完全像这样的选择器进行对话框:
我尝试使用包含 ListView 的 AlertDialog,但这会在 ListView 和底部灰色区域之间产生难看的黑色边框。我可以使用普通对话框,但我不想手动构建底部灰色区域。
我知道我可以对 AlertDialog 进行子类化,但是我还需要对 Builder 进行子类化,这样一个小细节就需要编写大量代码。有什么巧妙的方法吗?
干杯,
我正在尝试使用看起来完全像这样的选择器进行对话框:
我尝试使用包含 ListView 的 AlertDialog,但这会在 ListView 和底部灰色区域之间产生难看的黑色边框。我可以使用普通对话框,但我不想手动构建底部灰色区域。
我知道我可以对 AlertDialog 进行子类化,但是我还需要对 Builder 进行子类化,这样一个小细节就需要编写大量代码。有什么巧妙的方法吗?
干杯,
使用警报对话框生成器,它有相应的选项。简短的例子:
AlertDialog.Builder adb = new AlertDialog.Builder(this);
CharSequence items[] = new CharSequence[] {"First", "Second", "Third"};
adb.setSingleChoiceItems(items, 0, new OnClickListener() {
@Override
public void onClick(DialogInterface d, int n) {
// ...
}
});
adb.setNegativeButton("Cancel", null);
adb.setTitle("Which one?");
adb.show();
请参阅对话框文档,添加列表部分。
您应该使用以下代码来选择单个项目。这是工作代码
CharSequence colors[] = new CharSequence[]{"View PDF", "Reduce Size", "Delete PDF", "Share PDF"};
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Select Option");
builder.setItems(colors, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.e("value is", "" + which);
switch (which) {
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
}
}
});
builder.show();